从ArrayFormula中删除重复项

时间:2018-12-04 17:30:51

标签: google-sheets array-formulas google-sheets-formula

现在,我的公式是:

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

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

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

1 个答案:

答案 0 :(得分:0)

尝试

=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。看看是否有帮助?