EXCEL用公式查找的问题。

来源:百度知道 编辑:UC知道 时间:2024/05/25 12:42:23
像这样。

例如,A列为日期,B列为姓名,C列为货物,D列为数量。
A B C D
09-1-1 张三 娃哈哈 10
09-1-1 张三 冰激凌 20
09-1-2 李四 娃哈哈 20

我想在输入日期后,能显示名字,货物名和数量,比如在输入09-1-1与张三两个条件后,在一个单元格中显示娃哈哈,往右一个单元格显示10;然后下一行显示冰激凌,右一个单元格显示20。

是否是用LOOKUP函数?那样是只能显示第一个,怎么把下面的也显示出来?
都把张三的娃哈哈显示出来了。怎么把张三的冰激凌也显示出来?

或者简单的说,在输入张三之后,怎么把他买了的娃哈哈和冰激凌都显示出来?

假设问题中的表是sheet2

sheet1 A1 B1中是要查询的日期,和姓名
C1输入公式:
=vlookup(A1&B1, if({1,0},sheet2!A$1:A$1000&sheet2!B$1:B$1000,sheet2!C$1:C$1000),2,0)
输入完成用,数组公式ctrl+shift+enter键结束.

D1输入公式
=sumproduct((A1=sheet2!A:A)*(B1=sheet2!B:B)*shee2!D:D)
===================================================================
如果查找结果是多行的, 我的假设不变,

C1 公式:
=OFFSET(Sheet2!C$1:C$1000,LARGE(IF((A$2=Sheet2!A$1:A$1000)*(B$2=Sheet2!B$1:B$1000),ROW($1:$1000),-1),ROW($1:$1000)),0)

D1 公式:
=SUMPRODUCT(($A$2=Sheet2!A$2:A$1000)*($B$2=Sheet2!B$2:B$1000)*(C2=Sheet2!C$2:C$1000)*Sheet2!D$2:D$1000)

选中C1 D1, 向下复制公式即可

请注意公式中的绝对与相对引用有所变化。

你的这个要求用VLOOKUP或LOOKUP函数是解决不了的,正象你说的“那样是只能显示第一个”,不管有多少满足要求的数据,例如张三某天去了趟超市,花了近200元钱来了个大采购,在你的单子里有20多项物品,用VLOOKUP或LOOKUP函数去调取所购买物品的数据,只能返回你单子中最前面列出的物品,如“哇哈哈”。

假设数据在Sheet1,在Sheet2输入以下公式,可以解决你的问题:“=INDEX(Sheet1!D:D,SMALL(IF($C$1=Sheet1!$C$1:$C$10000,ROW(Sheet1!$D$1:$D$10000)),ROW(A1)),)”