Google 工作表:生成过滤数组并在同一公式中进行求和

Google Sheets: generating a filtered array and doing a sumif in the same formula

我有一个文档,其中有一列 ('Source'!D:D) 使用此格式构建:

Country → Name → ID
Country → Name → ID
Country → Name → ID
Country → Name → ID

在同一文档中,还有另一列 ('Source'!AA:AA) 包含数字。例如,如果 ColD 中的国家/地区是美国,我想对数字求和。我无法在 Source 文档中添加列,因此我需要在公式中生成一个包含国家/地区的数组 "polished"。 我试过这个,但没有用。 ARRAYFORMULA 和 REGEXTRACT 绝对有效(独立位确实生成一个只有国家名称的数组),但我认为 2 个标准 "don't talk to each other",它们就像分开的位,不再引用同一行。

=SUMIFS('Source'!$AA0:$AA,arrayformula(REGEXEXTRACT(ARRAYFORMULA('Source'!$D0:$D), "^(.+?)→")),"USA")

我怎样才能使上面的公式生效?

你的公式逻辑是正确的(内部数组公式是不必要的,但它没有坏处)。它还可以正确处理电子表格中的样本数据。问题必须在数据中;也许国家名称在箭头前跟一个 space ?

但我也建议采取稍微不同的方法,filterregexmatch

=sum(filter('Source'!$AA0:$AA, regexmatch('Source'!$D0:$D, "^USA\b")))

这具有更简单的逻辑(匹配与提取),因此应该更容易调试。