【发布时间】:2020-11-06 15:07:15
【问题描述】:
很遗憾,我找不到以下问题的解决方案。
我有一个表 (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 的情况下使用公式(因为这会在共享点(文件存储位置)上产生问题)?
【问题讨论】:
-
假设没有大量代码,您可以让自己更轻松并执行
IF(IF(FIND("code1",cell_ref)>0,1,0)+IF(FIND("code2",cell_ref)>0,1,0)+IF(FIND("code3",cell_ref)>0,1,0)>0,"NOK","OK")之类的操作 -
有多少潜在的逗号分隔值?您可以编写一个公式来查看是否在第一个逗号匹配之前、第二个和第三个匹配之间等等。
-
此外,您必须先分解搜索条件而不是制作单列列表,这让您自己变得更加困难。
-
每个唯一标识符最多有大约 10 个代码(每个项目的附件)。代码表基本上表示带有某些正在审查中的配件的项目(“NOK”)。总共有大约 100 种可能的代码(附件)。我还尝试了多次在 CODES 表中列出标识符的方法,而 B 列中只有一个条目(AB123 - CD01、AB123 - EF02、CD345 - ZD01、EF678 - AB34),但这不适用于“INDEX”。所以像“code1”这样的硬编码“搜索词”似乎是不切实际的。
标签: excel excel-formula excel-2013