是否有更快的方法来计算以绿色突出显示的单元格? [已解决]

问题描述 投票:0回答:2

是否有更快的方法来计算以绿色突出显示的单元格?根据公司政策,报告格式必须保持原样,不能更改。如果最多有 Z 公司,这可能会成为一项相当手动的任务。

B 列始终是 1 号计划或 2 号计划。 D 栏始终是佣金。

没有数据透视表。我已经使用了

SUBTOTAL
功能,只是我想消除手动过程。

这个问题可能没有答案,但我真的很感谢任何帮助。

enter image description here

excel excel-formula
2个回答
1
投票

好的,这里有 3 个公式可以实现您想要的效果,使用

SUBTOTAL
函数not 计算它遇到的任何其他
SUBTOTAL
的功能,以及可以使用
INDEX
的事实用冒号生成动态单元格范围。

因此,最简单的是单元格 E23 中的总计:

=SUBTOTAL(9,E$2:E22)

这只是

SUBTOTAL
上面的整列。

下一个最简单的是 E3、E14 和 E17 中的产品小计:(公式输入与 E3 中相同;一旦粘贴到那里,您就可以将其复制/粘贴到其他项中。在工作簿上添加过滤器将允许您过滤 B 列“非空白”和“不是‘小计:’”来执行此操作 en Masse)

=SUBTOTAL(9,E4:INDEX(E4:E109,MATCH(1,--(""&D4:D105=""),0)-1))

这会向下查找 D 列以找到下一个空白单元格,然后

SUBTOTAL
是该行和当前行之间的 E 列中的所有单元格(不包括在内)。

(注意:如果特定产品的客户超过 100 个,这将引发错误。您可以通过将

""&D4:D105=""
更改为
""&D4:D$1048576=""
来解决此问题,但代价是增加计算时间......)

最后,单元格 E11 和 E21 中有公司小计:(按照 E11 中输入的公式。与前面的示例一样,您可以仅筛选 B 列为“小计”,以简化此操作)

=SUBTOTAL(9, E10:INDEX(E:E,MAX(ROW(A$1:A11)*--(LEN(A$1:A11)>0))))

这看起来向上A列,找到上一个非空白行,然后

SUBTOTAL
是从该行到之前当前行的所有内容。


如果需要,您可能可以编写一个 VBA 脚本,将这些公式添加到适当的单元格(注意,使用 R1C1 引用而不是 A1 引用将使这变得更容易,尽管此时您也可以坚持使用 A1 引用并计算每个依次单独范围...),然后将其保存到您的 Personal.XLSM,并向功能区或快速访问工具栏添加一个按钮,将其应用到当前的 ActiveSheet。

打开报告,点击按钮,完成。


0
投票

此公式位于 E3 中,需要复制/粘贴到其他计划行

在 B 列中找到下一个非空单元格并将范围修改为总和。
B$2000 是 B 列中最后一个数据之外的虚构单元格。

=LET(next,MATCH(1,--NOT(ISBLANK(B4:B$2000)),),
SUM(E4:OFFSET(E4,next-2,0)))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.