是否有更快的方法来计算以绿色突出显示的单元格?根据公司政策,报告格式必须保持原样,不能更改。如果最多有 Z 公司,这可能会成为一项相当手动的任务。
B 列始终是 1 号计划或 2 号计划。 D 栏始终是佣金。
没有数据透视表。我已经使用了
SUBTOTAL
功能,只是我想消除手动过程。
这个问题可能没有答案,但我真的很感谢任何帮助。
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。
打开报告,点击按钮,完成。