【问题标题】:Excel Formulas - Creating an OR array within a SUMExcel 公式 - 在 SUM 中创建 OR 数组
【发布时间】: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)

编辑:添加图片

Expected Results

【问题讨论】:

  • 您为什么不简单地使用数据透视表?
  • 据我发现,数据透视表使用硬编码的过滤器引用,我需要能够使用单元格引用动态更新我的引用。
  • 使用切片器过滤数据透视。最终结果是一样的,实现和用户体验要简单得多。
  • 我想我的部分预订是格式化。我的表格格式完美,可以打印在一张纸上。我不希望数据透视表增长和缩小。另外,我正在尝试超级限制最终用户可以使用受保护的单元格在工作表本身上调整的内容,并且条件格式非常繁重。我可以使用 VBA 超级简单地做到这一点,但我什至受限于将要使用的计算机上的安全策略。
  • 数据透视表显示的记录数量不会与您的公式完全相同吗?此外,是否会为每个 Emp_ID 执行此公式?你有几个?你看过 SUMIFS 函数吗?请注意,SUMIF/SUMIFS 的计算量很大,应谨慎使用。您最不想要的是一个包含数万个 SUMIFS 的工作表。

标签: arrays excel sum conditional-statements


【解决方案1】:

在公式方面,您最好的选择是使用 SUMIFS 公式。您仍然需要单独指定每个条件,但语法要简单得多:

=SUMIFS(sum_range,criteria_range,criteria,...)

但如前所述,我个人的偏好是使用数据透视表进行数字运算。有时我将数据透视表放在隐藏的工作表上,并在向用户公开的工作表中使用 GETPIVOTDATA 函数来获取输入并从数据透视表中检索聚合值。这为您提供了完全的格式化灵活性。

【讨论】:

    猜你喜欢
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2019-07-23
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多