如何在 Google 表格的过滤器中使用 REGEXMATCH 和 SPLIT?
How can I use REGEXMATCH and SPLIT in a filter in Google Sheets?
我有两个数据集:
- 数据集 1 是我们销售团队的数据
- 数据集 2 是我们财务团队的数据
这两个集合之间的共同元素是 发票 ID 列(数据集 1 中的列 A 和数据集 2 中的列 E)。但是,在数据集 1 中,此数据存储为数组,而在数据集 2 中,数组的每个值显示在其自己的行上。
目标
我希望能够使用数据集 1 中的数据丰富数据集 2(F 和 G 列),但是,我无法完成这项工作。我试过使用 =FILTER(A3:A7, REGEXMATCH(TEXT(E3, "0"), TEXT(ARRAYFORMULA(SPLIT(A3:A7, ",")), "0")))
,但这给了我以下错误:“FILTER range must be a single row or a single column.”。我知道这是因为 SPLIT
函数,但我不知道还有什么办法可以解决这个问题。
sheet可以找到here。
非常感谢任何帮助。
试一试-
=FILTER($B:$B,ArrayFormula(MMULT(--(SPLIT($A:$A,", ")=E3),SEQUENCE(Columns(ArrayFormula(SPLIT($A:$A,", ")))))))
我已将新的 sheet(“Erik Help”)添加到您的样本传播sheet。以下单个公式将生成 F3:G ...
的所有结果
=ArrayFormula(IF(E3:E="",,VLOOKUP("*"&"%"&E3:E&"%"&"*",{REGEXREPLACE("%"&A3:A&"%","[,\s]","%"),B3:C},{2,3},FALSE)))
%
符号仅用于“填充”Col A 和 Col E 中的每个元素,使其具有独特性,以便将搜索词 1
与 14
区分开来(即,VLOOKUP
将搜索 %1%
,而不仅仅是 1
,后者不会在 %14%
等中找到。)%
符号没有特殊意义;它可能是我们确信通常不会出现在 Col A 或 Col E 中的任何独特角色。
REGEXREPLACE
除了前面和后面的位置之外,用这个特殊的 %
字符替换所有逗号和空格。因此,像 1, 14
这样的 Col-A 列表此时会被 sheet 视为 %1%%14%
.
*
是一个通配符,它附加在搜索词的前后,可以在包含列表的 Col A 元素中找到它。
返回虚拟数组的第二列和第三列(例如,{2,3}
)的结果。
我有两个数据集:
- 数据集 1 是我们销售团队的数据
- 数据集 2 是我们财务团队的数据
这两个集合之间的共同元素是 发票 ID 列(数据集 1 中的列 A 和数据集 2 中的列 E)。但是,在数据集 1 中,此数据存储为数组,而在数据集 2 中,数组的每个值显示在其自己的行上。
目标
我希望能够使用数据集 1 中的数据丰富数据集 2(F 和 G 列),但是,我无法完成这项工作。我试过使用 =FILTER(A3:A7, REGEXMATCH(TEXT(E3, "0"), TEXT(ARRAYFORMULA(SPLIT(A3:A7, ",")), "0")))
,但这给了我以下错误:“FILTER range must be a single row or a single column.”。我知道这是因为 SPLIT
函数,但我不知道还有什么办法可以解决这个问题。
sheet可以找到here。
非常感谢任何帮助。
试一试-
=FILTER($B:$B,ArrayFormula(MMULT(--(SPLIT($A:$A,", ")=E3),SEQUENCE(Columns(ArrayFormula(SPLIT($A:$A,", ")))))))
我已将新的 sheet(“Erik Help”)添加到您的样本传播sheet。以下单个公式将生成 F3:G ...
的所有结果=ArrayFormula(IF(E3:E="",,VLOOKUP("*"&"%"&E3:E&"%"&"*",{REGEXREPLACE("%"&A3:A&"%","[,\s]","%"),B3:C},{2,3},FALSE)))
%
符号仅用于“填充”Col A 和 Col E 中的每个元素,使其具有独特性,以便将搜索词 1
与 14
区分开来(即,VLOOKUP
将搜索 %1%
,而不仅仅是 1
,后者不会在 %14%
等中找到。)%
符号没有特殊意义;它可能是我们确信通常不会出现在 Col A 或 Col E 中的任何独特角色。
REGEXREPLACE
除了前面和后面的位置之外,用这个特殊的 %
字符替换所有逗号和空格。因此,像 1, 14
这样的 Col-A 列表此时会被 sheet 视为 %1%%14%
.
*
是一个通配符,它附加在搜索词的前后,可以在包含列表的 Col A 元素中找到它。
返回虚拟数组的第二列和第三列(例如,{2,3}
)的结果。