累积行总和的列数的公式

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

我有这个网格:

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

然后,我沿着列计算的累计总数大于3,所以我得到:

1   3   4   4   4

现在我可以得到最终的单行结果,而无需在两者之间创建一个临时网格(包含累积总数)?我有很多数据,需要保存在单元格上。

google-sheets array-formulas countif running-total cumulative-sum
3个回答
1
投票

这是可能的,但是您需要了解矩阵乘法的基础知识才能理解并适合于您的数组的公式。如果您的示例中A1:E4具有第一个矩阵,则解决方案:

=ARRAYFORMULA(MMULT(--TRANSPOSE(MMULT(A1:E4,--(TRANSPOSE(COLUMN(A1:E4))<=(COLUMN(A1:E4))))>3),ROW(A1:A4)^0))
  • 内部MMULT在整个行中进行累加总数。
  • 外部MMULT计算总数,如果满足条件>3
  • 比较COLUMN(或ROWs,以较长者为准),以将所需的{1,0}数组获得MMULT。

0
投票

您可以尝试:

=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"))

在此上下文中,“ *”是“ +”。


0
投票

您可以像这样获得单行:

=ARRAYFORMULA(TRANSPOSE(MMULT(N(TRANSPOSE(MMULT(A1:E4,
 N(TRANSPOSE(COLUMN(A1:E4))<=(COLUMN(A1:E4))))>3)), ROW(A1:A4)^0)))

0


0
投票

您可以像这样获得单行:

=ARRAYFORMULA(TRANSPOSE(MMULT(N(TRANSPOSE(MMULT(A1:E4,
 N(TRANSPOSE(COLUMN(A1:E4))<=(COLUMN(A1:E4))))>3)), ROW(A1:A4)^0)))

0

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