Excel:执行 SUMIF,其中条件是逗号分隔的列表

Nic*_*rie 4 excel excel-formula

在我的第一个 Excel 工作表中,我有一个 ID 和值表:

ID  VALUE
1   30
2   35
3   14
4   92
Run Code Online (Sandbox Code Playgroud)

在我的第二个工作表中,我将在一列中提供一个以逗号分隔的 ID 列表,在第二列中,我想要这些 ID 值的计算总和,如下所示:

IDs     SUM
1,2     65
2,3,4   141
3       14
Run Code Online (Sandbox Code Playgroud)

我将如何编写第二个工作表的 SUM 列的公式?如果可能,我想避免使用 VBA。

XOR*_* LX 5

假设,对于您给出的示例表:

1) 您的源表在范围内Sheet1!A1:B5(第 1 行有标题)

2)您的结果表在范围内Sheet2!A1:B4(第 1 行有标题)

3) 结果表 A 列条目的分隔符只能是一个逗号

然后,在Sheet2!B2数组公式**:

=SUM(IF(ISNUMBER(FIND(","&Sheet1!A$2:A$5&",",","&A2&",")),Sheet1!B$2:B$5))

复制到B4.

问候

**数组公式的输入方式与“标准”公式不同。不是仅按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果你做对了,你会注意到 Excel 在公式周围放置了大括号 {}(尽管不要尝试自己手动插入这些)。


tey*_*lyn 1

考虑使用列而不是逗号来分隔条件,然后您可以简单地添加一些 Sumif 公式。用逗号分隔标准是一个坏主意。

在此输入图像描述

编辑:实际上,为什么不使用几十列呢?Excel 有很多它们,所以让我们使用它们。将逗号分隔的列表放入一列中。甚至可能在不同的纸上。使用文本分列将值分隔到各个列中。允许一百。然后添加一百列,每列都有一个 sumif 公式。在最右侧,使用求和公式对所有 sumif 语句求和。

您可以使用 VBA 执行“文本到列”操作,并隐藏包含拆分值的列和包含公式的列,这会在包含各自总计的列旁边留下一个用于逗号分隔值的列。