EXCEL里用VLOOKUP函数如果lookup_value重复怎么办

如:VLOOKUP(A2, A2:C7, 3, 0) 会得到什么
我在这幅图的B2输入上面的那个公式

问题中的公式下拉时,只能返回从上至下表格中第一个出现的AAA对应的值,且从问题图中看来,就应是两个工作表之间的跨表操作,公式中还应加上工作表的名称。


此种情况应是企业中有员工姓名重复的情况,要在D列加一辅助列,然后在SHEET2下拉另一数组公式就行了,这样就能正确显示姓名重复,但各自不相同的项目了


SHEET1工作表D2公式下拉:

=IF(A2="","",COUNTIF(A$2:A2,A2))


sheet2工作表B2公式下拉:

数组公式,输入完成后不要直接回车,要按三键  CTRL+SHIFT+回车  结束。

=IF(A2="","",INDEX(Sheet1!C:C,MATCH(A2&COUNTIF(A$2:A2,A2),Sheet1!A$2:A$100&Sheet1!D$2:D$100,)+1))


如果一定要用VLOOKUP函数,公式改为这样:

=IF(A2="","",VLOOKUP(A2&COUNTIF(A$2:A2,A2),IF({1,0},Sheet1!$A$2:$A$100&Sheet1!D$2:$D$9,Sheet1!$C$2:$C$100),2,))


我把文件传上来,请点击这回答右下角绿色的“点击下载”按钮,下载文件看看效果。


如果只是想根据名字统计税收的总金额,则公式如下:

=IF(COUNTIF(Sheet1!A$2:A2,Sheet1!A2)=1,SUMIF(Sheet1!A:A,A2,Sheet1!C:C),"")


若不是跨表操作的,公式可以精简些(就是精简了不用指定工作表名称)

=IF(COUNTIF(A$2:A2,A2)=1,SUMIF(A:A,A2,B:B),"")



追问

这里——

如果只是想根据名字统计税收的总金额,则公式如下:
=IF(COUNTIF(Sheet1!A$2:A2,Sheet1!A2)=1,SUMIF(Sheet1!A:A,A2,Sheet1!C:C),"")

——为什么最后是返回空值”“? 这样我不是就不能得到第二个同样叫AAA的人的个税了吗?

追答

   追问中的公式是一个汇总公式,如有10个人叫AAA的,它就把这10个人的个税总金额汇总到第一个出现的AAA那儿,后面叫AAA的公式就不再汇总,而是返回空值了。如果想要每一个叫AAA的人那儿都有一个汇总(显示的都是10个人的个税总额),公式写为这样:

 =SUMIF(Sheet1!A:A,A2,Sheet1!C:C)


但如果想每一个AAA都对应回各自的个税金额,就是用问题开头的方法,要在D列加一辅助列,我上面的回答有很详细的操作方法并把操过过程录下来的。


再提供一种方法,B2输入公式后右拉足够的列数再下拉,想同名字的数据都显示在右边的列。

=INDEX(Sheet1!$C:$C,SMALL(IF($A2=Sheet1!$A$2:$A$100,ROW($2:$100),4^8),COLUMN(A1)))&""


如果还是不行的,扣我   690二二一857

  

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-05
如果你是想要个税总和的话
在第一个表的D2输入公式
=IF(COUNTIF(A$2:A2,A2)=1,SUMIF(A:A,A,B:B),"")
下拉即可
第2个回答  2013-08-05
三个AAA顺序对应的结果。