【发布时间】:2018-05-13 12:37:02
【问题描述】:
我目前的数组公式和我想要的很接近,只是受限于我只能有两个条件(除非我想手动添加更多)。我想做的是能够使用从表列派生的名称来匹配条件,类似于使用带有范围的 OR()。
就目前而言,我的数组公式看起来与此类似(使用名称或范围引用)
=SUM((JOB_HRS)*(TEXT($E4,"0")=TEXT(EMP_ID,"0"))*(JOB_DATE>=$M4)*(JOB_DATE<=$N4)*((JOB_TYPE=CONFIG!$F$8)+(JOB_TYPE=CONFIG!$F$9)))
我得到一个包含大约 5000 行数据的报告表。这个公式准确地解析了工作表并总结了员工的总工作时间(通过 ID,有时根据输出程序当天的感受存储为数字或文本)
最后一部分是我想要精简的部分
((JOB_TYPE=CONFIG!$F$8)+(JOB_TYPE=CONFIG!$F$9))
它有效,但我受到单元格数量的限制,而且公式看起来很长。我想将其简化为类似的东西,但找不到使用 SUM 数组的良好参考。有什么想法吗?
(JOB_TYPE=RNG_OF_JOB_TYPES)
编辑:添加图片
【问题讨论】:
-
您为什么不简单地使用数据透视表?
-
据我发现,数据透视表使用硬编码的过滤器引用,我需要能够使用单元格引用动态更新我的引用。
-
使用切片器过滤数据透视。最终结果是一样的,实现和用户体验要简单得多。
-
我想我的部分预订是格式化。我的表格格式完美,可以打印在一张纸上。我不希望数据透视表增长和缩小。另外,我正在尝试超级限制最终用户可以使用受保护的单元格在工作表本身上调整的内容,并且条件格式非常繁重。我可以使用 VBA 超级简单地做到这一点,但我什至受限于将要使用的计算机上的安全策略。
-
数据透视表显示的记录数量不会与您的公式完全相同吗?此外,是否会为每个 Emp_ID 执行此公式?你有几个?你看过 SUMIFS 函数吗?请注意,SUMIF/SUMIFS 的计算量很大,应谨慎使用。您最不想要的是一个包含数万个 SUMIFS 的工作表。
标签: arrays excel sum conditional-statements