首页 > 解决方案 > 在 Excel 中搜索具有逗号分隔值字符串的单元格

问题描述

不幸的是,我找不到以下问题的解决方案。

我有一个表(DATA),由具有非唯一标识符的 A 列和由空格分隔的几个 4 位代码的 B 列组成。

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

应有的例子

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

我使用了以下公式:

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

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

目前的例子

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

标签: excelexcel-formulaexcel-2013

解决方案


使用 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 来确认这一点。

在此处输入图像描述


推荐阅读