excel - SUMIF 排除隐藏行。小计?求和?

标签 excel excel-formula excel-2010

我有 2 个巨大的事件表。第一个表是数据表 (tblData),其中包含日期、持续时间和代码(用于标识事件)。第二个表是每个事件所花费的总时间的汇总表 (tblSummary)。

如何过滤tblData并更新tblSummary

下面是tblData的一小部分。请注意,2 级代码有 3 列(L2aL2bL2c);这意味着如果我正在查找 2 级代码“EL”的总持续时间,我必须检查所有 3 列并添加它们的Duration 时间。仅考虑下图,总“EL”时间将为 9.9

tblData

下面是一段tblSummary

tblSummary

对于 Total 列,我使用 SUMIF (tblData[L2a], [@[Lvl 2 Code]], tblData[Duration]) 来获取总时间代码的一部分,但这包括隐藏行。当我更改 tblData 上的过滤器时,tblSummary 不会更新。

我相信使用SUBTOTAL是一个死胡同。这将解决隐藏列的问题,但由于无法设置条件,我无法将其应用于 tblSummary

我是 SUMPRODUCT 的新手,但我确实尝试过使用

=SUMPRODUCT(SUBTOTAL(109,tblData[Duration]),--(tblData[L2a]="EL"))

但收到了#VALUE!。我确实按下了 Ctl + Shift + Enter

最佳答案

SUMIF function耦合在一起的列值条件,同时忽略隐藏行意味着我们必须在 SUBTOTAL function 上强制执行额外的计算层并通过 SUMPRODUCT function 的循环计算来收集聚合。额外的处理“层”将通过 OFFSET function¹ 完成.

     sumif_hidden1

tblSummary第一行的标准公式structured table 总计列(又名 K15)是,

=SUMPRODUCT((SUBTOTAL(103, OFFSET(tblData, ROW(tblData)-ROW(INDEX(tblData, 1, 0)), 0, 1, 1))=1)*(tblData[L2a]=[@[Lvl 2 Code]]), tblData[Duration])

如果表格无法为您执行此操作,请填写。

当我们过滤 tblData 表的 Date 列以隐藏 2015 年 11 月 24 日、2015 年 11 月 27 日和 2015 年 11 月 28 日时,新总计将显示在tblSummary 表。

     sumif_hidden2


1 每当整个工作簿中的任何内容发生变化时, volatile 函数都会重新计算,而不仅仅是影响其结果的内容发生变化时。 volatile 函数的示例有 INDIRECT , OFFSET , TODAY , NOW , RANDRANDBETWEENCELL的一些子功能和 INFO工作表函数也会使它们不稳定。

关于excel - SUMIF 排除隐藏行。小计?求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071152/

相关文章:

excel - 如何删除数据透视表中的 "Data"标题

excel - 用空格填充单词以填充单元格

excel - 在 Excel 中计算电力塔的困难

excel - 如果存在任何不匹配,如何比较两个枢轴之间的数据并更改颜色?

html - 如何清理 Excel vba 中的对象?

Excel 精确单词匹配

vba - excel vba宏匹配来自两个不同工作簿的单元格并相应地复制和粘贴

python - 如何正确读取 pandas 中的 excel 合并标题单元格

excel - 在 Excel 单元格中返回用户定义的数据类型

mysql - 从带有外来字符的 excel 导出 csv 以导入 MySQL