我想快速为我经常做的事情编写一个函数。我正在尝试对不同月份的 H 列进行求和,而不必创建一个新列来测试条件。
因此,如果数字 7 到 11 是月份,如果 L 列位于左侧单元格的月份中,我想快速对 H 列的正数求和。
我知道我可以做类似
=sumifs(H:H;H:H;">0";First day of the month;">="&Q2;
等等的事情...
但是写起来很长。
我觉得必须有一种快速的方法可以在输入到
=sumifs()
之前转换L列。
我也不想为其创建一个新专栏。我的想法是快速输入。
有什么办法吗?
我尝试过:
=sumif(H:H;H:H;">0";month(L;L);Q2)
=sumif(H:H;H:H;">0";month($L$2:$L$44);Q2)
=sumif(H:H;H:H;">0";month({L;L});Q2)
作为标量(一次一个单元格)公式:
=SUM( H:H * (H:H >0) * (MONTH(L:L) = Q2) )
然后复制下来。
或者使用动态数组仅输入一次可以执行的公式:
=BYROW( Q2:Q6, LAMBDA(r, SUM( H:H * (H:H >0) * (MONTH(L:L) = r))))
任何一个公式都会很慢,你最好对 H 和 L 更有选择性,例如:
=BYROW( Q2:Q6, LAMBDA(r, SUM( H2:H100 * (H2:H100 >0) * (MONTH(L2:L100) = r))))
这将公式限制为总计仅 100(或您需要的任何数量)行,而不是一百万行。