Excel:Sumifs公式,是否有可能的索引匹配?
我正在尝试创建一个SUMIFS,该SUMIFS具有检查数据范围内“子”行的智能,然后使用“父”ID号(列在子行中)检查父数据和总和。我在下面插入了一张表格的图片,它给出了一个虚拟数据集。这种公式的预期结果是:Excel:Sumifs公式,是否有可能的索引匹配?,excel,excel-formula,sumifs,Excel,Excel Formula,Sumifs,我正在尝试创建一个SUMIFS,该SUMIFS具有检查数据范围内“子”行的智能,然后使用“父”ID号(列在子行中)检查父数据和总和。我在下面插入了一张表格的图片,它给出了一个虚拟数据集。这种公式的预期结果是: 阶段1中有父项的子项:$0 第二阶段中有父母的儿童:$80 第三阶段中有父母的儿童:$10 提前感谢您的帮助 或作为文本: ID Type Parent ID Phase Finances 1 Single 1 $10 2 P
阶段1中有父项的子项:$0 第二阶段中有父母的儿童:$80 第三阶段中有父母的儿童:$10 提前感谢您的帮助 或作为文本:
ID Type Parent ID Phase Finances
1 Single 1 $10
2 Parent 2 $10
3 Child 2 $10
4 Single 3 $10
5 Parent 3 $10
6 Child 5 $10
7 Single 1 $10
8 Parent 2 $10
9 Child 8 $10
10 Child 8 $10
11 Child 8 $10
12 Child 8 $10
13 Child 8 $10
14 Child 8 $10
15 Child 8 $10
假设您的表格位于A1到E16之间
生成一个辅助列,填充空白阶段。空白相位将被填充,假设它们具有与父ID相同的相位。因此在F1中,下面的公式复制到F16:
=IF(D2<>"",D2,VLOOKUP(C2,$A$2:$D$16,4,0))
sumproduct仅对表中有子项(如第H列所定义)且阶段等于第I列所定义数字的行进行合计,并且仅对财务列中对应的值进行合计。如果B中不存在子级或F中的阶段不等于正在搜索的数字,则该行的值为0
概念证明
这里是一个数组公式:
=SUM(IF($C$2:$C$16<>"",(LOOKUP($C$2:$C$16,$A$2:$A$16,$D$2:$D$16)=G2)*$E$2:$E$16))
=总和(如果($C$2:$C$16)”(查找($C$2:$C$16,$A$2:$A$16,$D$2:$D$16)=G2)*$E$2:$E$16))
作为数组公式,在离开编辑模式时需要使用Ctrl-Shift-Enter确认。如果操作正确,Excel将在公式周围放置{}
ASCII/文本中的示例数据比屏幕截图更可取。上面的编辑是否有效?如果我下面的回答是一个误解,那么第2阶段中有父母的孩子的总数不是80吗?因为父8和父2都处于第2阶段?阶段1中有父项的子项为0,因为没有父项在阶段1中?对不起,你说得对。。。我的错误。是的,所以根据上面的数据,应该是:第一阶段有家长的孩子:$0第二阶段有家长的孩子:$80第三阶段有家长的孩子:$10向上投票,尽管我会避免调用列阶段,而是选择“家长阶段”以避免混淆。我也会使用And index/match而不是vlookup,但这可能是因为我喜欢index/match。@Stianytervik同意index/match更通用,但在这种情况下,如果数据按vlookup的方式排列,则输入的参数更少。至于列命名,最初我是空白的…变得懒惰了,只是重新输入了旧的…至少我不小心打开了封盖锁!8) 这是非常感谢和答案的工作。为了参数起见,是否可以在不输入新列(如F列)的情况下执行此操作,并且公式中保留了所有逻辑?我目前不知道这一点。“我看看能不能让别人看一下。”安迪:我想知道我的答案。我接了你的电话,太棒了。我还有一个问题。如果你添加这样一个if/and语句,那么这个公式会起作用吗:=SUM(if(and($C$2:$C$16“,$B$2:$B$16=“CHILD”),(LOOKUP($C$2:$C$16,$a$2:$D$16)=G2)*$E$2:$E$16))我可能会遇到这样的情况,你会得到两种类型的“CHILD”数据,这个公式需要加以区分。。。。我正在尝试我的数据集,但它不太有效。数组公式不喜欢
和和或。所以我们需要在它们的位置使用*
和+
,所以=SUM(如果($C$2:$C$16“)*($B$2:$B$16=“CHILD”),(查找($C$2:$C$16,$A$2:$A$16,$D$2:$D$16)=G2)*$E$2:$E$16))
@Andy\u
=SUM(IF($C$2:$C$16<>"",(LOOKUP($C$2:$C$16,$A$2:$A$16,$D$2:$D$16)=G2)*$E$2:$E$16))