excel - SUMIFS 中的动态总和列
问题描述
我有月份列和行标准(部门、度量),并且需要一种方法来汇总给定度量的所有部门,并且只返回报告月份。
INDEX(MATCH)
不起作用,因为我需要它来汇总所有 12 月 18 日的缺勤值,但列中还有其他度量。
我当前的迭代(数组):
=SUM(OFFSET(D1:D53,,MATCH(Y3,$D$2:$P$2,0)))
但我无法根据所选月份更改求和列。
我最后的猜测是我需要交换部门和月份(所以部门列标题,月份行),但如果我遗漏了一些明显的东西,我宁愿不要。
例子:
Department | Measure | Nov-18 | Dec-18
Sales | Absence Hours | 3.5 | 4.6
Manu | Absence Hours | 6.2 | 1.7
Sales | Hours worked | 1000 | 976
解决方案
不使用类似计算的数组或易失性函数的替代解决方案。
=SUMIF($B$2:$B$4,$F2,INDEX($C$2:$D$4,0,MATCH(G$1,$C$1:$D$1,0)))
如果未找到您的条件或日期,则会显示错误。您可以通过将整个内容包装在 IFERROR 函数中来处理此问题,然后选择您自己的错误消息、显示空白或返回 0。
=IFERROR(SUMIF($B$2:$B$4,$F2,INDEX($C$2:$D$4,0,MATCH(G$1,$C$1:$D$1,0))),"NOT FOUND")
此外,如果您希望通过“部门”和“衡量”进一步细分您的结果,那么您可以使用 SUMIFS,它允许您设置多个标准而不是 1
推荐阅读
- odoo - odoo 14如何实现基于记录的访问控制?
- javascript - 如何从具有 2 万个元素的数组中过滤自动完成数据?
- python-3.x - 如何运行返回变量的线程函数?
- java - Kafka 资源泄露
- kubernetes - 使用 Kubernetes 运行的服务的 API 网关?
- c - stat() 函数的最大文件名长度是否与操作系统接受的不同?
- google-apps-script - 为什么这个 getLastRow 语句不起作用?
- botium-box - 运行 botium-cli (Botium) 时出现 readscript 错误
- c++ - 类似于 C++ 中 python 的 __init__ 的东西?
- c++ - 在 for 循环中使用 C++ 数组时出现分段错误