Excel sumif在非连续范围内
我有一组数字的配对列,每个列都与一个相邻的标记字段相关联,指示它是否属于一个组(相同的标志)。 你可以把它看作是一个有不同成本(价值)的行,并且每个都被标记,如果是应税或不标记的话。
因此,数据表中的数据如下所示:
ABCDEF --- --- --- --- --- --- 1: n1 c1 n2 c2 n3 c3 ... 2: 11 22 - 33 3: 12 22 34 -
我为这两组数字分别命名了一个范围, “values”是定义所有具有n的列的名称,而“tags”是定义具有该条件的所有列的名称。 对于上面的例子,在名称pipe理器中,定义如下所示:
values=A:A,C:C,E:E (and more) tags=B:B,D:D,F:F
我可以做一个总和的价值观,它工作正常,( =总和(1:1值) ),但我也想做一个总和只有非标签值,这似乎更难。 从概念上讲,我想要做这样的事情,对于只有非标记值的每一行总计:
=SUMIF(1:1 tags, "", 1:1 values)
但似乎sumif不会在一个命名的范围与非连续的部分工作。
一个产品变化也不起作用,这似乎是类似的原因;
=SUMPRODUCT(--(1:1 tags=""),1:1 values)
我怎么能最好的做到这一点?
(如果一个函数仅限于连续的命名区域,Excel将会显示出来。
试试这个数组公式:
=SUM(IF(ISNUMBER(A2:F3),A2:F3,0)*(LEFT(A1:F1,1)="n")*(B2:G3=""))
诀窍是将0填入标签列中的二维数组A2:F3,然后将结果数组乘以相同的数组,将标签列中的空单元格replace为1。 因此,在标签单元格为空的情况下,对应的值单元格将被乘以1并添加到总数中。
你可以把c1
保留在n1
之上,避免这一切。
c1 c2 c3 n1 n2 n3 11 22 33
有什么阻止你这样做。
在你的评论
您可以保持原样
我已经将范围A1:J1命名为A,将A2:J2命名为B
单元格A1包含公式= B2,我将select如图所示的A1:B1,并复制到范围A的末尾(这将重复公式的模式和空单元格)
这工作。 你需要做的100或1000行的艰苦工作是将A1:B1范围复制到命名范围的末尾。 (复制这两个单元格后,你可以去结束,按Ctrl + Shift +左键,然后粘贴)