【发布时间】:2022-01-05 01:58:51
【问题描述】:
我想将除法(B 列)为“服务”的行的余额(I 列)相加。这个公式有效:
=SUMPRODUCT(($B7:$B500="SERVICE")*I7:I500)
...这让我很惊讶,因为我以前从未真正理解过 SUMPRODUCT。
现在,我想使用过滤器选择“服务”或 B 列的任何其他值,而不是简单地查找“服务”行。所以现在我需要公式来检测过滤器设置的形式。
我怀疑有一种方法可以提取 B 列中可见的内容。或者也许有一种方法可以使用 COUNTIF 和/或 SUBTOTAL。
【问题讨论】:
-
您好。实际上,最简单的答案是说您应该使用替代聚合函数,如“SUBTOTAL”或“AGGREGATE”,因为它们能够忽略“隐藏”行,这是数据过滤的结果。这样,您不必担心在过滤器中选择的值是什么,并尝试基于该值执行计算 - 那些聚合函数会处理它。 (另外,如果在数据过滤器中选择了多个值,您会期望发生什么?)
-
但是,我确实做了一些尝试(然后进行了更多调查)以确定所选过滤器值的难易程度(或者,假设至少是选择的第一个过滤器值,如果有的话)是倍数)。老实说,我自己过去并没有专门尝试过这样做.....事实证明,如果不添加额外的列或诉诸 VBA,这并不是一件容易的事。 Excel 的大多数函数(您可能认为是候选函数,例如 MIN 或 MAX)仅适用于数值,而不适用于 alpha。其他人可能有答案,但我不知道
-
我认为 B 列只有一个过滤选项,但事实证明我错了。另外,我们也可以过滤其他列,所以整个问题没有实际意义。如果任何最终答案对某人有帮助,我会留下问题。
标签: excel array-formulas sumproduct