Google Sheets:用SheetB关键词匹配SheetA并返回对应D列值的公式问题
解决方案
在SheetA的G2单元格输入以下公式,可直接应用到整列:
=MAP(B2:B, LAMBDA(x, IF(x="",, IFNA(XLOOKUP(TRUE, REGEXMATCH(x, "(?i)"&SheetB!B2:B), SheetB!D2:D, "")))))
公式说明
MAP(B2:B, LAMBDA(x, ...)):遍历SheetA中B列的每一个单元格(记为x)IF(x="",, ...):当前单元格为空时返回空值,否则执行匹配逻辑REGEXMATCH(x, "(?i)"&SheetB!B2:B):通过(?i)忽略大小写,检查x是否匹配SheetB中B列的任意关键词,返回一组TRUE/FALSE结果XLOOKUP(TRUE, ..., SheetB!D2:D, ""):定位第一个匹配(TRUE)对应的SheetB中D列的值,无匹配时返回空值
如果需要返回所有匹配的D列值(多个关键词命中的情况),可使用以下公式:
=MAP(B2:B, LAMBDA(x, IF(x="",, TEXTJOIN(", ", TRUE, FILTER(SheetB!D2:D, REGEXMATCH(x, "(?i)"&SheetB!B2:B))))))
内容的提问来源于stack exchange,提问作者LemNick
相关产品推荐
相关产品推荐

