在 Excel 中搜索包含逗号分隔值的字符串的单元格

Searching a cell with a string of comma delimited values in Excel

很遗憾,我找不到以下问题的解决方案。

我有一个 table (DATA),它由带有非唯一标识符的 A 列和带有由 space 分隔的几个 4 位数代码的 B 列组成。

在另一个 table (CODES) 中,我有一个 A 列用于唯一标识符,这些标识符出现在 A 列 (DATA) 中,还有一个 B 列有几个,用逗号分隔的 4 位代码。

我的目标是检查第一个 table(DATA)中的所有条目,并列出那些在 B 列中至少有一个代码在另一个 table(CODES)中标识的 NOK

我使用了以下公式:

=IFERROR(IF(ISNUMBER(SEARCH(INDEX(CODES, MATCH([@A], CODES[A], 0), MATCH("B", CODES[#Kopfzeilen],0)),[@B])), "NOK", "OK"), "OK")

不幸的是,它只搜索列 B (CODES) 中的完整字符串,而不是搜索由逗号分隔的每个值。

是否可以在不使用 VBA 的情况下使用公式(因为这会在存储文件的共享点上产生问题)?

使用 FILTERXML:

=IF(OR(ISNUMBER(SEARCH(FILTERXML("<a><b>"&substitute(INDEX(CODES, MATCH([@A], CODES[A], 0), MATCH("B", CODES[#Headers],0)),",","</b><b>")&"</b></a>","//b"),[@B]))), "NOK", "OK")

确保将 #Headers 更改为您的语言(如果不同于英语)

在 Excel 2013 年退出编辑模式时,需要使用 Ctrl-Shift-Enter 而不是 Enter 确认。