Google sheets 行累计和的列计数公式
我有一个网格:Google sheets 行累计和的列计数公式,google-sheets,array-formulas,countif,cumulative-sum,Google Sheets,Array Formulas,Countif,Cumulative Sum,我有一个网格: 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 我对行进行累积总计,因此得到: 1 3 6 10 15 2 5 9 14 20 3 7 12 18 25 4 9 15 22 30 1 3 4 4 4 然后我沿着超过3的累计总数的列进行计数,因此我得到: 1 3 6 10 15 2
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
我对行进行累积总计,因此得到:
1 3 6 10 15
2 5 9 14 20
3 7 12 18 25
4 9 15 22 30
1 3 4 4 4
然后我沿着超过3的累计总数的列进行计数,因此我得到:
1 3 6 10 15
2 5 9 14 20
3 7 12 18 25
4 9 15 22 30
1 3 4 4 4
现在,我可以在不创建中间网格(包含累计总数)的情况下获得最终单行结果了吗?我有很多数据,需要保存在单元格上。您可以尝试:
=ARRAYFORMULA(countif(A:A,">3"))
=ARRAYFORMULA(countif(((A:A)*(B:B)),">3"))
=ARRAYFORMULA(countif(((A:A)*(B:B)*(C:C)),">3"))
=ARRAYFORMULA(countif(((A:A)*(B:B)*(C:C)*(D:D)),">3"))
=ARRAYFORMULA(countif(((A:A)*(B:B)*(C:C)*(D:D)*(E:E)),">3"))
在这种情况下,“*”是一个“+”。这是可能的,但您需要了解矩阵乘法的基础知识,才能理解并使公式适合您的数组。如果A1:E4在您的示例中具有第一个矩阵,则解决方案:
=ARRAYFORMULA(MMULT(--TRANSPOSE(MMULT(A1:E4,--(TRANSPOSE(COLUMN(A1:E4))<=(COLUMN(A1:E4))))>3),ROW(A1:A4)^0))
=数组公式(MMULT(--转置(MMULT(A1:E4,--(转置(A1:E4列))3),行(A1:A4)^0))
- 行内累积总计的内部结果
- 如果满足条件
,则计算总数的外部结果>3
- 比较列(或行,以较长者为准),将所需的{1,0}数组与MMULT进行比较
=ARRAYFORMULA(TRANSPOSE(MMULT(N(TRANSPOSE(MMULT(A1:E4,
N(TRANSPOSE(COLUMN(A1:E4))<=(COLUMN(A1:E4))))>3)), ROW(A1:A4)^0)))
【代码】=ARRAYFORMULA(转置)N(转置)N(转置),
N(转置(列(A1:E4))3),行(A1:A4)^0)