带有符号倒置的非空白单元格的总和
假设我有一组数字的行。 这些行中的某些列是空的。 但是,每行都包含偶数个非空白单元格,如下所示:
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:F2
, A3: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有两列是空白的。 如果你超出这个标准,你将不得不另外修改它。