EXCEL 如何查找某单元格对应的最新日期的数据

请用函数查找名称为A的最新日期的库存(必须用函数)

假设数据在A2:C20,公式
=INDEX(C2:C20,MATCH(MAX(IF(B2:B20="A",A2:A20)),IF(B2:B20="A",A2:A20),))
同时按下CTRL+SHIFT+回车,输入数组公式。
若日期列A一定为升序排列,公式可为
=LOOKUP(2,0/(B2:B20="A"),C2:C20)追问

排序后的方法是可行的,INDEX与之查找出来的数据好像有出入。如果我想查找若干个名称对应的库存,如何做呢?

追答

你的意思是B列为A的情况下,A列日期最大的不止一天,这样的情况。
还是B列为A的情况下,取出所有C列的数据,还是所有对应行的ABC列的数据都要。

追问

我的意思是,如果我想查找多个数据对应的最新日期的值怎么做,比如还是数据A2:C20,然后D列有A、B、C等等若干个单据,那么可以用函数分别求出最新数据对应的值吗

追答

若那些A,B,C放在D2:D4中,E2中输入

=INDEX(C$2:C$20,MATCH(MAX(IF(B$2:B$20=D2,A$2:A$20)),IF(B$2:B$20=D2,A$2:A$20),))
同时按下CTRL+SHIFT+回车,下拉。
第二个变为F2中输入
=LOOKUP(2,0/(B$2:B$20=D2),C$2:C$20)
下拉。

追问

非常感谢,您帮了我大忙了~

追答

不客气。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-09
网友“山桑弓”的公式漏了一个设置,我修改后效果应能满足你的要求:
=INDEX(IF(B2:B20="A",C2:C20),MATCH(MAX(IF(B2:B20="A",A2:A20)),IF(B2:B20="A",A2:A20),))
数组公式的建立方法不变。追问

那你可以用函数满足我这个条件么?还是数据A2:C20,然后D列有A、B、C等等若干个单据,分别求出相对应的最新时间的库存值

追答

B、C、D等单据也可以分别求取最新的库存值,只要把公式中的“A”改为“B”或“C”或“D”即可。
举例:
你可以在D列求名称“A”的库存值,方法见上面;然后在E列求名称“B”的库存值,公式
=INDEX(IF(B2:B20="B",C2:C20),MATCH(MAX(IF(B2:B20="B",A2:A20)),IF(B2:B20="B",A2:A20),))
也是数组公式。
再在F列求名称“D”的库存值......

追问

每一个都进行修改,如果我有几百种产品的名称,不是很复杂很繁琐的工作吗?如果用相对或者绝对(我搞不清楚这个,O(∩_∩)O~)就简单多了,你明白吗?

追答

也好办,只做一个查找,查找对象设为可变的就行了。
举例:
用D1单元格为查找对象单元格,你在D1中输入A或B或C或......
E1为查找结果,输入公式
=INDEX(IF(B2:B20=$D$1,C2:C20),MATCH(MAX(IF(B2:B20=$D$1,A2:A20)),IF(B2:B20=$D$1,A2:A20),))
同时按下CTRL+SHIFT+回车即可。当你改变D1的值,E1值也会跟着改变。

追问

恩,你们两个的回答都帮了我很大的忙,非常感谢。

追答

不敢居功,网友“山桑弓”是高手,我只是受他的启发。请采纳他的回答!

相似回答