excel中怎样用一列数据筛选另一列数据?

如:A B C D
1 张一 21 2 张蓉
2 李二 22 1 张三
3 张蓉 23 2 李二
4 谢世 23 1 王五

怎样将A列与D列中相同的选出来,并且BC列中的数据也要与筛选出来的A列相对应。(相当于D列是条件,如果A列中数据等于D列,就把相应的数据提取到另外的区域)

工具/材料:Microsoft Office Excel2016版,Excel表格。 

1、首先选中Excel表格,双击打开。 

2、然后在该界面中,选中要筛选的数据列。

3、再者在该界面中,点击右上方的“筛选”按钮。 

4、其次在弹出框中,根据需要筛选数据。

5、继续在弹出框中,点击“确定”按钮。 

6、最后在该界面中,另一列数据成功根据筛选的结果也发生改变。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-24

方法:

选中原始数据区域(包含表头),然后点击【数据】-【筛选】。

这时按Ctrl+Z,或点“撤消”按钮,再次选择D2单元格进行粘贴,就会将复制的内容粘贴到D列所有可见单元格。可以看到,取消筛选后,仅对D列所筛选的单元格进行了替换。

这种方法比较直接,甚至有点奇异,但在Excel 2003和Excel 2007中是确实可行的,遗憾的是该方法不适用于Excel 2010。


方法二:公式法

    先对B列进行筛选,然后在D列第二行的单元格(本例为D2)中输入公式:

    =E2

    然后双击或拖动填充柄将公式填充到D列筛选后的所有可见单元格。取消筛选后,可以看到仅对D列所筛选的单元格进行了填充。但这时所填充的内容为公式,如果要转换为数值,可先取消筛选,再复制D列数据后选择性粘贴为值。


方法三:排序后复制粘贴

1.如果原区域中包含类似“序号”的列,可忽略此步,否则在F列增加一个辅助列“序号”,并用序列数填充。增加该列的目的是为以后可以还原原有的排序顺序。


2.筛选B列数据,然后再次增加一个辅助列。本例增加G列为第二个辅助列,并将该列筛选后的可见单元格全部填充某个数值或字母等,如本例全部用数字“0”填充。

3.取消筛选,将G列按升序排序,让G列所有非空单元格所在的行排列到上方,这时所需替换的数据就排列到一起了。

 4.选择E列需要替换的数据复制粘贴到D列对应的单元格 。

 5.将“序号”列按升序排序,然后删除F、G列即可。 

第2个回答  2014-06-08

E1公式右拉下拉填充:

=IF(COUNTIF($A:$A,$D1),VLOOKUP($D1,$A:B,COLUMN(B1),),"")


或者:

=IF(COUNTIF($A:$A,$D1),INDEX(B:B,MATCH($D1,$A:$A,)),"")


追问

你好,刚刚自己改了一下然后试了一下,不行,可能我数据太多,有一千多行,十几列。

追答

上面两条公式中,EXCEL有多少行就支持多少行,有多少列就支持多少行,不受限制的。估计是你的实际表格的数据区域跟提问的数据区域不一样,请截图发上来看看啊。

如果是$A:$P,则上面第一条公式改为:
=IF(COUNTIF($A:$A,$D1),VLOOKUP($D1,$A:$P,COLUMN(B1),),"")

第二条公式不用改。公式中的COLUMN(B1)返回数字2,右拉时变为COLUMN(C1)返回数字3。。以此类推。主要是就通过右拉,不断返回数据区域的第2列,第3列,第4列。。。。

追问

还是不行,把数据删了一下弄了个缩减版,谢啦。要从B列中挑选出 I 列中的数据,大谢啊。

本回答被提问者和网友采纳
第3个回答  2014-06-08
在E1中输入
=VLOOKUP($D1,$A:$C,COLUMN(B1),)
再将公式右拖、下拉填充。追问

你好,因为我的数据中列比较多,有十多列,那是应该写$A:$P吗?另外COLUMN(B1)又是什么意思?谢谢

追答

如果数据区域在A列到P列中,查找区域可用$A:$P,但条件列就不可能在D列了。也就是说,第一个参数也应作相应调整。

COLUMN(B1)求B1单元格所在的列数,B1在第2列,所以应显示2。这个结果会随着公式右拖而变化为2、3、4……它作为VLOOKUP的第3个参数,指定查找的结果在查找区域$A:$P的第几列中。

相似回答