带有符号倒置的非空白单元格的总和

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

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

其中#是一个空单元格。

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

 = -3 + 4 + -7 + 3 

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

问:如果没有VBA,只用一些excel公式就可以做到吗? 任何帮助表示赞赏。

根据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}

问候

**数组公式不是以与“标准”公式相同的方式input的。 按住CTRL键和SHIFT键,而不是按下ENTER键,然后按ENTER键。 如果你做得对,你会注意到Excel在公式周围放置了大括号(尽pipe不要试图自己手动插入这些)。

这个怎么用? 你需要使用助手列。 (可能有一种方法可以跳过这一点,并将帮手公式和Sum()结合起来,但是我还没有这样做:P)

在这里输入图像说明

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

然后,总结这些数字(上面的O栏)来得到你的答案。

在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) 

假设你只有六列,至less有两列总是填满,至less有两列是空白的。 如果你超出这个标准,你将不得不另外修改它。