如何通过函数转换列,然后将其输入到另一个公式中而不创建新列?

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

我想快速为我经常做的事情编写一个函数。我正在尝试对不同月份的 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)
excel excel-formula
1个回答
0
投票

作为标量(一次一个单元格)公式:

=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(或您需要的任何数量)行,而不是一百万行。

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