首页 > 解决方案 > 从 ArrayFormula 中删除重复项

问题描述

现在,我的公式是:

=ARRAYFORMULA(TEXTJOIN(", ", TRUE, IF(REGEXMATCH(B2:D7,F2),A2:A7,"")))

它返回找到的值,但问题是它返回重复项。

例如,如果在同一行的多个单元格中找到该值,它将返回:'Evolution, Route 158, Route 161, Route 161, Route 161'。我想知道的是如何删除这些重复项,或者使搜索只搜索“唯一”值。

标签: google-sheetsarray-formulasgoogle-sheets-formula

解决方案


尝试

=ARRAYFORMULA(TEXTJOIN(", ", TRUE, UNIQUE(TRANSPOSE(IF(REGEXMATCH(B2:D7,F1),A2:A7,)))))

编辑:上面的公式必须创建一列匹配的单元格。这应该工作

=ARRAYFORMULA(join(", ", substitute(unique(transpose(split(textjoin(" ", 1, query(UNIQUE(TRANSPOSE(IF(REGEXMATCH(B2:D7,F1),substitute(A2:A7, " ", "|"),))),,rows(A2:A7))), " "))), "|"," ")))

但更好/更简单的方法是尝试类似

=JOIN(", ", FILTER(A2:A7, MMULT(--regexmatch(B2:D7, F1), TRANSPOSE(COLUMN(B1:D1)^0))>0))

这个公式“计算”每行的匹配数,然后 FILTER() 返回 A 中的值,计数 > 0。看看这是否有帮助?


推荐阅读