我在 Excel 表中有以下内容:
A1: Labeling
B1: [L-1.1.2-A] - Not for use in patient environment according to IEC 60601-1 (3rd edition) (in e-manual or printed manual)[L-1.1.2-B] - Hardware is labeled with instructions and warnings to remove power before opening the case in the OEM manuals. (in e-manual or printed manual)
F1: L-1.1.2-A
G1: =INDEX(A:A;MATCH("*"&F1&"*";B:B;0))
A2: Design
B2: [D-1.1.2-A] - Equipment not used in patient environment according to IEC 60601-1 (3rd edition)[D-1.1.2-B] - IEC 60601-1 or IEC60950
F2: D-1.1.2-A
G2: =INDEX(A:A;MATCH("*"&F2&"*";B:B;0))
A、B 和 F 列的格式为文本。
我的问题是,G1 返回 #N/A,而显然字符串可以在 B1 中找到,它应该返回“Labeling”。另一方面,G2 正确地返回“Design”。如果我在 F1 中对字符串进行常规搜索,它会在单元格 B1 中找到。知道可能出了什么问题吗?
谢谢!
答案1
正如您所发现的,的字符限制为 255 个MATCH
,这令人沮丧。
查看您的数据,似乎您可以相当安全地假设数据始终位于前 255 个字符中?如果是这样,您可以使用以下内容数组公式:
=INDEX(A:A,MATCH("*"&F1&"*",LEFT(B:B,255),0))
这将从左侧截取前 255 个字符。请记住,作为数组公式,您必须使用CTRL+ SHIFT+ ENTER,而不仅仅是ENTER(正确输入时,它应该显示带有花括号的公式)。
答案2
问题似乎在于 MATCH 仅适用于最多 255 个字符的单元格。一旦长度超过该长度,它就会返回错误。为了避免这种情况,我改用以下公式:
=INDEX(A:A;MATCH("*"&F1&"*";MID(B:B;SEARCH(F1;B:B);20);0))
由于它是一个数组公式,因此需要用 ++ 进行确认CTRL。如果您搜索的字符串超过第 255 个字符,这也有效。SHIFTENTER
十分感谢@jonno谁给我指明了正确的方向!