如何在 Google 表格的过滤器中使用 REGEXMATCH 和 SPLIT?

How can I use REGEXMATCH and SPLIT in a filter in Google Sheets?

我有两个数据集:

这两个集合之间的共同元素是 发票 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 中的每个元素,使其具有独特性,以便将搜索词 114 区分开来(即,VLOOKUP 将搜索 %1%,而不仅仅是 1,后者不会在 %14% 等中找到。)% 符号没有特殊意义;它可能是我们确信通常不会出现在 Col A 或 Col E 中的任何独特角色。

REGEXREPLACE 除了前面和后面的位置之外,用这个特殊的 % 字符替换所有逗号和空格。因此,像 1, 14 这样的 Col-A 列表此时会被 sheet 视为 %1%%14%.

* 是一个通配符,它​​附加在搜索词的前后,可以在包含列表的 Col A 元素中找到它。

返回虚拟数组的第二列和第三列(例如,{2,3})的结果。