Google表格:生成过滤后的数组并使用相同的公式进行求和

时间:2016-07-06 09:54:34

标签: google-sheets sumifs array-formulas

我有一个包含使用此格式构建的列('Source'!D:D)的文档:

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

在同一文档中,还有另一列('Source'!AA:AA)带有数字。如果ColD中的国家/地区是美国,我想对这些数字求和。我无法在Source文档中添加列,因此我需要生成一个数组,其中的国家/地区已经过了"抛光"在公式里面。 我试过这个,但它没有用。 ARRAYFORMULA和REGEXTRACT肯定有效(独立位确实生成了一个只有国名的数组),但我认为这两个标准并没有相互交谈,他们就像是分开了比特,不再指同一行了。

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

如何更改上述公式?

1 个答案:

答案 0 :(得分:0)

你的公式的逻辑是正确的(内部数组式是不必要的,但它没有坏处)。它也适用于我的电子表格中的示例数据。问题必须出在数据中;或许国家名称后面跟着箭头前的空格?

但我也建议采用略有不同的方法,filterregexmatch

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

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