现在,我的公式是:
ARRAYFORMULA(TEXTJOIN(", ", TRUE, IF(REGEXMATCH(B2:D7,F2),A2:A7,"")))
哪个返回找到的值,但是问题在于它返回重复项。
例如,如果在同一行的多个单元格中找到该值,它将返回:“ Evolution,Route 158,Route 161,Route 161,Route 161”。我想知道的是如何删除这些重复项,或者使搜索仅搜索“唯一”值。
答案 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。看看是否有帮助?