我的工作簿中有两张工作表。第一张工作表名为 SalesPerson,应显示单元格 B1 中输入的销售人员的概要以及所售饼干的类型和数量。布局如下:
姓名:George
所售饼干:数量:
然后,我有一张名为 Sales Data 的第二个工作表,其中显示每个销售人员以及他们所售饼干的类型和数量。布局如下
.......Choc Chip....Vanilla....Lemon....etc
George 4 12 0
Bob 3
Jerry 4 1
假设在单元格 B1 中输入了名称 George,在标题 Cookies Sold 和 Quantity(以 A3 和 B3 开头)下,我希望返回以下内容
Choc Chip 4
Vanilla 12
有没有可以做到这一点的 excel 公式?我可以使用VLOOKUP
或组合方法,Index(Match())
如果 SalesPerson 包含所有可能的 cookie,则只需查找销售数量,但由于它没有返回什么选项两个都将 cookie 和计数 >= 1 添加到我的销售人员工作表中?
我曾经考虑过使用PIVOT TABLE
,但这只是有助于深入研究数据,而不是将数据返回到我的销售人员工作表,而且我也考虑过使用该VLOOKUP()
函数,但我只能让它返回一个值,而不是同时返回饼图类型和计数。
编辑
我可以用来=INDEX(A1:D6, 4, 3)
返回计数,但是我怎样才能同时返回饼图呢?
我知道INDEX()MATCH()MATCH()
当您同时拥有垂直和水平查找值时它会起作用,但是可以将其转置以返回水平值以及返回值吗?
答案1
首先让我们获取 cookie 列表。我们需要使用数组公式。在这种情况下,我使用的公式是 INDEX 内的 AGGREGATE()。我将“George”放在 A8 中,数据放在 A1:D4 中:
=IFERROR(INDEX($B$1:$D$1,AGGREGATE(15,6,(COLUMN($B$2:$D$4)-1)/(($A$2:$A$4=$A$8)*($B$2:$D$4<>0)*($B$2:$D$4<>"")),ROW(1:1))),"")
然后将该公式复制到足够多的行以覆盖所有可能的列表长度。
然后我使用标准的 INDEX/MATCH/MATCH 来查找数字:
=IF(A9<>"",INDEX($A:$D,MATCH($A$8,$A:$A,0),MATCH($A9,$1:$1,0)),"")
然后再次复制相同数量的行。