excel和Match问题


0

我在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的格式为文本。

我的问题是,当明确在B1中找到字符串时,G1返回#N / A,它应返回“标签”。另一方面,G2正确返回“设计”。如果我在F1中正常搜索字符串,则会在单元格B1中找到它。知道什么可能出错吗?

谢谢!

Answers:


1

正如您所确定的那样,字符数限制为255 MATCH,这令人沮丧。

查看您的数据,看起来您可以相当安全地假设数据始终位于前255个字符中?如果是这样,您可以使用以下数组公式

=INDEX(A:A,MATCH("*"&F1&"*",LEFT(B:B,255),0))

这将从左侧剪切前255个字符。请记住,作为数组公式,您必须使用CTRL+ SHIFT+ ENTER,而不仅仅是ENTER(它应该在正确输入时显示带有花括号的公式)。


嗨,我想到了,但有些情况下,它不是在前255.
Mircea M

是的,请。比赛可能超出第255个角色的事情
Mircea M

0

似乎问题是MATCH仅适用于最多255个字符的单元格。一旦长度超出该长度,它就会返回错误。为了避免这种情况,我改为使用以下公式:

=INDEX(A:A;MATCH("*"&F1&"*";MID(B:B;SEARCH(F1;B:B);20);0))

由于它是一个数组公式,需要用CTRL+ SHIFT+ 确认ENTER。如果您搜索的字符串超出第255个字符,这也适用。

非常感谢@jonno指出了我正确的方向!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.