Excel – 用两个标准汇总一个表格

ABC 1 Report Line Data Type Value 2 1 a 10 3 1 b 20 4 1 c 30 5 2 a 40 6 2 b 50 7 2 c 60 8 3 a 70 9 3 b 80 10 3 c 90 EF 1 Report Report Line 2 1 1 3 1 3 4 2 2 5 2 3 

嗨,

在上面的例子中,第一个表格显示了每个报告行可以属于一个或多个报告。 第二个表格显示哪个报告行属于哪个报告。

在E:F中给出的表中,如何汇总C列中所有属于报表2的行的数据types为“a”的行? 这应该是40 + 70 = 110。

我想这样做,而不用在这两个表格之外引用任何标准范围,一个单元格中有一个公式。 尝试search所有我能想到的匹配,索引,sumifs,副产品…

非常感谢。

您可以使用下面的数组公式(通过CTRL + SHIFT + ENTERinput ):

 =SUMPRODUCT( C2:C10, --(B2:B10="a"), --(ISNUMBER(MATCH(A2:A10,IF(E2:E5=2,F2:F5),0)))) 

解释(另请参阅Excel词汇表以更快地find解决scheme ):

  • 在数组公式中IF(E2:E5=2,F2:F5)将检查E2到E5中的每个单元格,如果它等于2,它将从F-列中追加相应的值,否则将追加FALSE输出数组
  • MATCH(A2:A10, inner_array, 0)将inner_array作为一个普通参数,但是因为第一个参数应该只有一个值,所以在一个数组公式中,它将检查A2到A10中的每个单元格,提供了inner_array,如果find了匹配,它会在inner_array里面追加位置,如果不是则追加#N #N/A! 到输出数组
  • ISNUMBER(array)在数组公式中使用时会检查提供的数组中的每个元素,它将TRUE或FALSE追加到输出数组
  • --(boolean_array)将数组中的每个项目从布尔值转换为0或1
  • SUMPRODUCT(range, array, array)将在所提供的范围或数组中的每个相应位置上乘以数字,然后将所有结果