带嵌套SUMIFS的VLookUp

问题描述 投票:0回答:2

我一直在尝试为一些不具备计算机知识的团队成员制作表格,而我本质上是想让它一键点击即可。我以为我可以做到...但是可惜的是,嵌套功能不如我以前想象的那么好。

我有此电子表格,我想在其中将数据放入黄色单元格。在下一张纸上,我有下表。我想要做的是使用公式用“请求分支的”帐号填充H4。现在,我目前已在单元格中填充了信息。实际上,它们具有下拉选项-从“帐户列表”表中拉出。结果,H4中的值将根据用户的需要不断变化-但必须在“帐户列表”表的范围内。

enter image description here

enter image description here

我尝试过的是hereenter link description here。我不断得到#Value或N / A的结果。我不知道自己在做什么错。我知道我需要将SUMIFS与VLookUp嵌套在一起,但是我不确定为什么它不起作用。

excel vlookup sumifs
2个回答
1
投票

我为您提供两个可能解决方案。

1)第一个使用SUMPRODUCT函数。您可能以前从未见过这种表示法。

当范围像(B3:B8=G3)*(C3:C8=G4)这样彼此相乘时,它们实际上变成了布尔参数。如果突出显示了代码的这一部分并按F9,则它将像这样:{0;0;0;0;1;0;0}。这是两个条件都为TRUE的数组。因此,我们的分支是“ A”,而运营商是“ F”。在其余情况下,其中一个或两个都为假,导致零。

现在,如果您将此数组乘以带有帐号的范围,显然剩余的唯一数字将是一个乘以1的数字,因此您得到的答案但是请记住,如果您的帐号不是数字功能将失败!

[2)这就是为什么我们有使用=INDEX()=MATCH()函数的第二种方法的原因。

[过度简化-INDEX函数从指定位置(行和列)的数组中获取内容,而MATCH函数获取数组中项的位置。

将范围用作多个条件的想法与第一个示例相同,但是这次当我们获得零和1的数组{0;0;0;0;1;0;0}时,我们使用match函数来找到我们的条件在哪个位置交叉(如屏幕截图所示,它位于第五列,因为它位于整列D的第五行,所以match函数在{0;0;0;0;1;0;0}数组中搜索1并返回其在数组中的位置),因此我们的行。

知道要搜索的内容的位置,我们使用INDEX函数在该位置抓取单元格的内容,因此=INDEX(D2:D8,MATCH(1, INDEX((B2:B8=G3)*(C2:C8=G4),0),0))实际上是=INDEX(D2:D8, 5),这意味着INDEX函数抓取第5行的内容范围为D2:D8,即单元格D6

enter image description here绿色框正好显示满足我们两个标准的情况(交叉)。


0
投票

请尝试以下公式。

=INDEX(Table1[Account],SUMPRODUCT((Table1[Branch]=F$3)*(Table1[Carrier]=F$4)*ROW(Table1[Account]))-1)
© www.soinside.com 2019 - 2024. All rights reserved.