Excel 中数组公式的交替列
Alternating Columns on a Array Formula in Excel
我有一个电子表格,其中数据分布在交替的列中。 A、C 和 E 列是标志,指示相邻列是否具有有效数据。
是这样的:
A B C D E F
1 1 32 0 67 1 34
目标是对左相邻值为 1 的值求和。在此示例中,总和应为 66,因为 A 和 E 均为 1,而 C 为 0。
我可以获得一个包含 1 和 0 的数组,指示是否设置了标志列:
=MOD(COLUMN(A1:F1),2)*A1:F1
这给了我
{1, 0, 0, 0, 1, 0}
问题是我不知道我能从这里做什么。如果我可以滑动所有数据(通过在开头插入一个 0 并删除最后一个位置的 0),我可以对其进行 SUMPRODUCT 并得到结果。
顺便说一句,我不会使用宏...
想法?
请注意,下面的公式有两个单元格范围,一个从 A
列开始,另一个从 B
列开始。
=SUMIF(A1:F1,1,B1:G1)
如果您不熟悉 SUMIF
那么您需要了解的是第一项 A1:F1
是公式检查条件值的地方。在这种情况下,您可能会问什么条件下等于秒项的值 =1
。最后最后一项有需要求和的值。
此外,由于您可能会遇到偶数列中有 1 的问题(您期望的值不是您的条件),heve 是一个公式,可确保您的 1 和 0 条件在正确的列中:
=SUM(IF((A1:F1=1)*ISODD(COLUMN(A1:F1)),B1:G1,0))
简单版:
=SUM(A1*B1,C1*D1,E1*F1)
由于 0
乘以任何值始终为零,因此这只会对前面有 1
的列求和。
我有一个电子表格,其中数据分布在交替的列中。 A、C 和 E 列是标志,指示相邻列是否具有有效数据。
是这样的:
A B C D E F
1 1 32 0 67 1 34
目标是对左相邻值为 1 的值求和。在此示例中,总和应为 66,因为 A 和 E 均为 1,而 C 为 0。
我可以获得一个包含 1 和 0 的数组,指示是否设置了标志列:
=MOD(COLUMN(A1:F1),2)*A1:F1
这给了我
{1, 0, 0, 0, 1, 0}
问题是我不知道我能从这里做什么。如果我可以滑动所有数据(通过在开头插入一个 0 并删除最后一个位置的 0),我可以对其进行 SUMPRODUCT 并得到结果。
顺便说一句,我不会使用宏...
想法?
请注意,下面的公式有两个单元格范围,一个从 A
列开始,另一个从 B
列开始。
=SUMIF(A1:F1,1,B1:G1)
如果您不熟悉 SUMIF
那么您需要了解的是第一项 A1:F1
是公式检查条件值的地方。在这种情况下,您可能会问什么条件下等于秒项的值 =1
。最后最后一项有需要求和的值。
此外,由于您可能会遇到偶数列中有 1 的问题(您期望的值不是您的条件),heve 是一个公式,可确保您的 1 和 0 条件在正确的列中:
=SUM(IF((A1:F1=1)*ISODD(COLUMN(A1:F1)),B1:G1,0))
简单版:
=SUM(A1*B1,C1*D1,E1*F1)
由于 0
乘以任何值始终为零,因此这只会对前面有 1
的列求和。