繁体   English   中英

Excel使用条件数组跨多个工作表求和

[英]Excel sum across multiple sheets with criteria array

我有一本包含几张纸的工作簿,每张纸包含大量格式相同的数据。 我想做的是在摘要表上输入一个公式,该公式对数据表中的数据进行求和,然后根据一组条件选择要求和的数据。

工作表列表名为“ AdHoc_Sheets”,条件列表名为“ Uncontrollable_Compensation”。

第一次尝试:

=SUMPRODUCT(SUMIF(INDIRECT("'"&AdHoc_Sheets&"'!"&"C:C"),A40,INDIRECT("'"&AdHoc_Sheets&"'!"&"E:E")))

当仅需要一个标准(在这种情况下为“ A40”)时,此方法效果很好。 我发现的挑战是将其更改为一系列标准。

第二次尝试:

 ={SUMPRODUCT(SUM(IF(ISERROR(MATCH(INDIRECT("'"&AdHoc_Sheets&"'!"&"C:C"),TRANSPOSE(Uncontrollable_Compensation),0)),0,INDIRECT("'"&AdHoc_Sheets&"'!"&"E:E"))))}

如果不使用CSE,则返回零;如果不使用CSE,则返回#N / A错误。 关于处理数组的动态问题使我感到困惑,我无法确定是否需要使用MMULT或其他方法。 提前致谢。

假设C列中的条目是文本而不是数字, 则为数组公式**

=SUM(IF(ISNUMBER(MATCH(T(OFFSET(INDIRECT("'"&AdHoc_Sheets&"'!"&"C1"),TRANSPOSE(ROW(C1:C100)-MIN(ROW(C1:C100))),0)),Uncontrollable_Compensation,0)),N(OFFSET(INDIRECT("'"&AdHoc_Sheets&"'!"&"E1"),TRANSPOSE(ROW(C1:C100)-MIN(ROW(C1:C100))),0))))`

通过这种结构,您不能在不影响性能的情况下随意引用整个列。 因此,我选择从第1行到第100行的范围,尽管一定要保持尽可能小,但显然可以更改。

问候

**数组公式的输入方式与“标准”公式的输入方式不同。 首先按住CTRL和SHIFT,然后再按Enter,而不是仅按ENTER。 如果操作正确,您会注意到Excel在公式周围使用大括号{}(尽管不要尝试自己手动插入大括号)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM