Excel 难题!望高手解答!

A表格
编号 日期 状态
10000 2012-3-1
10000 2012-3-2
10000 2012-3-3
10000 2012-3-4
10000 2012-3-5

B表格
编号 日期 状态
10000 2012-1-2 优良
10000 2012-1-1 差
10000 2012-1-31 差
我需要按照编号,按照日期,将B表格的状态自动填充到A表格中

假设这两个表是同一工作薄下的sheet1和sheet2
表A是sheet1
在sheet1的c2单元格输入
=VLOOKUP(A2&B2,IF({1,0},Sheet2!A:A&Sheet2!B:B,Sheet2!C:C),2,0)
ctrl+shift+enter
结束
下拉追问

IF({1,0},前面的true,后面的false?Sheet2!A:A&Sheet2!B:B后面表的这个两列?看不懂,望高手解答。

追答

IF({1,0} 是经常和vlookup函数搭配的
在普通函数中是用来查找 查找值前方的数据
如=VLOOKUP(A1,IF({1,0},D1:D10,C1:C10),2,0)

这个函数理解起来,比较困难
你可以改成
=VLOOKUP(A2&B2,IF({1,0},Sheet2!A1:A10&Sheet2!B1:B10,Sheet2!C1:C10),2,0)
在输入栏
把IF({1,0},Sheet2!A1:A10&Sheet2!B1:B10,Sheet2!C1:C10)抹黑
按一下f9就能看明白了

追问

sorry还是不明白
VLOOKUP嵌套if的地方为查找的区域
而,IF({1,0},后面的是真值或者假值,插一句1,是指数组为真,0位false么?

追答

http://club.excelhome.net/thread-148450-8-1.html
自己看看吧,77楼的回答很详细

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-16
假设两个表格的编号,日期,和状态分别是A列,B列,C列
在C2输入以下公式并按Ctrl+Shift+Enter组合键以数组公式结束公式的输入
=IF(ISERROR(INDEX((Sheet2!$C$2:$C$10),MATCH(1,(Sheet2!$A$2:$A$10=A2)*(Sheet2!$B$2:$B$10=B2),0))),"",INDEX((Sheet2!$C$2:$C$10),MATCH(1,(Sheet2!$A$2:$A$10=A2)*(Sheet2!$B$2:$B$10=B2),0)))
该公式如果查到了符合条件的数据就显示查不到,返回空.如果不介意返回#N/A值可以使用简化公式为:
=INDEX((Sheet2!$C$2:$C$10),MATCH(1,(Sheet2!$A$2:$A$10=A2)*(Sheet2!$B$2:$B$10=B2),0))
同样要按Ctrl+Shift+Enter组合键以数组公式结束公式的输入.
第2个回答  2012-04-18
这个好解的,在B表的C2输入公式:
=INDEX(A表!$C$2:$C$2000,MATCH(1,(A表!A$2:A$2000=$A2)*(A表!$B$2:$B$2000=$B2),))
按F2,再同时按下Ctrl+Shift+Enter组合键,下拉填充完成
注,把公式里的A表字样改为你实际的表名即可。
第3个回答  2012-04-16
很简单,就是匹配函数就可以了。191038783
第4个回答  2012-04-16
用IF语句
第5个回答  2012-04-16
到图书大厦买本就会了,很容易
相似回答