具有符号反转的非空白单元的总和

时间:2017-05-04 17:09:48

标签: excel excel-formula

假设我有一组带数字的行。这些行中的某些列是空白的。然而,每行包含偶数个非空单元格,如下所示:

row_1: 3 4 # 7 # 3
row_2: 5 # 3 7 # 8
row_3: # # 5 # # 3
...

其中#是一个空单元格。

我想找到一个计算以下内容的公式(以row_1为例):

= -3 + 4 + -7 + 3

换句话说,公式是计算非空白单元格的总和,其中每个奇数非空白单元格的值都有反转符号。

问题:是否可以在没有VBA的情况下使用某些excel公式?任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

这是如何工作的?您需要使用辅助列。 (可能有一种方法可以跳过这个并将辅助公式与Sum()结合起来,但我还没有:P)

enter image description here

放入H1的公式,向右/向下拖动是:
=IF(A1<>"",IF(MOD(COUNTA($A1:A1),2)=1,-1*A1,A1),"")

然后只需总结这些数字(上面的O列)以获得答案。

答案 1 :(得分:1)

基于A1:F1数组公式**

中的数据

=SUM(INDEX(1:1,N(IF(1,MODE.MULT(IF(A1:F1<>{"";""},COLUMN(A1:F1))))))*-1^ROW(INDEX(A:A,1):INDEX(A:A,COUNT(A1:F1))))

向下复制,为A2:F2A3:F3等中的数据提供类似的结果。

作为解释的方式,使用提供的数据,这部分:

N(IF(1,MODE.MULT(IF(A1:F1<>{"";""},COLUMN(A1:F1)))))

生成一列列索引,该列的第1行中的条目为非空白,即:

{1;2;4;6}

然后我们将这些传递给INDEX,以便:

INDEX(1:1,N(IF(1,MODE.MULT(IF(A1:F1<>{"";""},COLUMN(A1:F1))))))

是:

INDEX(1:1,{1;2;4;6})

给出:

{3;4;7;3}

然后乘以结果:

-1^ROW(INDEX(A:A,1):INDEX(A:A,COUNT(A1:F1)))

是:

-1^ROW(A1:A4)

即:

-1^{1;2;3;4}

即:

{-1;1;-1;1}

此致

**数组公式的输入方式与“标准”公式的输入方式不同。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果你已经正确地完成了它,你会注意到Excel在公式周围放置了大括号{}(虽然不要尝试自己手动插入这些)。

答案 2 :(得分:0)

在G栏中,使用以下公式:

=CONCATENATE(A1,B1,C1,D1,E1,F1)

然后在H栏中使用这个公式:

=-MID(G1,1,1)+MID(G1,2,1)+IF(LEN(G1)>2,-MID(G1,3,1)+MID(G1,4,1),0)

假设您只有六列,其中至少有两列总是填充,并且至少有两列是空白的。如果您不符合该标准,则必须另外修改它。