Excel SUMIFS 多重标准单元格值

Excel SUMIFS Multiple Criteria Cell Value

questions to this have been asked but not exactly like this. There is 非常接近,但该解决方案对我不起作用。

我有一个函数,可以 returns 将值以逗号分隔到一个单元格中。我想使用 one 这样的方法将该单元格中的元素作为条件传递给 SUMIFS 函数。

我的尝试如下图:

我相信这在某种程度上与函数理解单元格 G8 中的内容的方式有关。看起来它正在添加一些额外的引号。如果我在公式栏中突出显示 G8 并按 F9,我会得到:

每个条件的每一边都有额外的引号。

我对自定义 VBA 函数解决方案持开放态度,但我更喜欢可以构建为工作表函数的东西。条件从自定义 VBA 函数返回,该函数将元素从列表框中拉出并执行一些正则表达式工作以删除多余的逗号。可以选择的元素数量是可变的,因此我想避免将条件拆分为多个单元格。谢谢。

原始的 comma-separated 条件似乎在 G6 中,您只需要将此条件拆分成一个数组并将其提供给 SUMIFS。拆分在 VBA 中可用,但未公开给 Excel。我们只需要编写一个小的 UDF 来拆分 CSV 并在我们的公式中使用它:

Function splitCSV(str As String)
    splitCSV = Split(str, ",")
End Function

现在 F10 中的公式将是:

=SUM(SUMIFS(C3:C10, B3:B10, "blue", A3:A10, splitCSV(G6)))

编辑

以上是数组公式(Ctrl+Shift+Enter)。为了让它成为一个正常的公式,我们可以使用 SUMPRODUCT 而不是 SUM。这会带来更大的灵活性(普通公式与数组公式)以及一些 "expected" 性能改进。

=SUMPRODUCT(SUMIFS(C3:C10, B3:B10, "blue", A3:A10, splitCSV(G6)))