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 ?
但我也建议采取稍微不同的方法,filter
和 regexmatch
:
=sum(filter('Source'!$AA0:$AA, regexmatch('Source'!$D0:$D, "^USA\b")))
这具有更简单的逻辑(匹配与提取),因此应该更容易调试。
我有一个文档,其中有一列 ('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 ?
但我也建议采取稍微不同的方法,filter
和 regexmatch
:
=sum(filter('Source'!$AA0:$AA, regexmatch('Source'!$D0:$D, "^USA\b")))
这具有更简单的逻辑(匹配与提取),因此应该更容易调试。