Google sheets GoogleSheets:生成一个过滤数组并使用相同的公式进行sumif

Google sheets GoogleSheets:生成一个过滤数组并使用相同的公式进行sumif,google-sheets,sumifs,array-formulas,Google Sheets,Sumifs,Array Formulas,我有一个文档,其中有一列('Source'!D:D)是用以下格式生成的: Country → Name → ID Country → Name → ID Country → Name → ID Country → Name → ID 在同一文档中,还有另一列('Source'!AA:AA)带有数字。如果ColD中的国家是例如美国,我想对这些数字进行求和。我无法在源文件中添加列,因此我需要生成一个包含公式中已“抛光”国家的数组。 我试过这个,但不起作用。ARRAYFORMULA和REGEXTRA

我有一个文档,其中有一列(
'Source'!D:D
)是用以下格式生成的:

Country → Name → ID
Country → Name → ID
Country → Name → ID
Country → Name → ID
在同一文档中,还有另一列(
'Source'!AA:AA
)带有数字。如果
ColD
中的国家是例如美国,我想对这些数字进行求和。我无法在
源文件中添加列,因此我需要生成一个包含公式中已“抛光”国家的数组。
我试过这个,但不起作用。ARRAYFORMULA和REGEXTRACT确实有效(独立位确实生成了一个只包含国家名称的数组),但我认为这两个标准“不要相互交谈”,它们就像分离的位,不再引用同一行

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

如何更改上述公式才能正常工作?

您公式的逻辑是正确的(内部数组公式是不必要的,但不会造成损害)。它还可以正确处理电子表格中的示例数据。问题必须出在数据上;也许国家名称后面的箭头前面有空格

但我也建议采取稍微不同的方法,使用
filter
regexmatch

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

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

您公式的逻辑是正确的(内部数组公式是不必要的,但它没有坏处)。它还可以正确处理电子表格中的示例数据。问题必须出在数据上;也许国家名称后面的箭头前面有空格

但我也建议采取稍微不同的方法,使用
filter
regexmatch

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

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

是的,它起作用了!如果与IMPORTRANGE一起使用SUM和FILTER,则会发生一件奇怪的事情。。我正在尝试使用:
=(SUM(filter(IMPORTRANGE(“XXXXXX”,“Source”!$Z$3298:$Z”)、regexmatch(IMPORTRANGE(“XXXXXX”,“Source”!$D$3298:$D”)、“^USA\b”))
但它返回的是
在筛选计算中找不到匹配项。
。我过去使用过FILTER和COUNTIF处理多个导入,没有任何问题。也许它不能和SUM一起使用…?我不知道;尝试不使用
sum
的公式,看看会发生什么。是的,它有效!如果与IMPORTRANGE一起使用SUM和FILTER,则会发生一件奇怪的事情。。我正在尝试使用:
=(SUM(filter(IMPORTRANGE(“XXXXXX”,“Source”!$Z$3298:$Z”)、regexmatch(IMPORTRANGE(“XXXXXX”,“Source”!$D$3298:$D”)、“^USA\b”))
但它返回的是
在筛选计算中找不到匹配项。
。我过去使用过FILTER和COUNTIF处理多个导入,没有任何问题。也许它不能和SUM一起使用…?我不知道;尝试不使用
sum
的公式,看看会发生什么。