使用Excel索引/匹配搜索包含数字和文本的列

使用Excel索引/匹配搜索包含数字和文本的列,excel,Excel,我有两张桌子: tblCodes包含两列: 代码(4字符代码可以是文本或数字)、代码名(文本描述) tblSerialNum包含3列: SerialNum列(可以是文本或数字) 使用LEFT()函数,代码列是SerialNum的前4个字符 “代码名”列使用索引/匹配查找与代码匹配的代码名: =索引(tblCodes[代码名],匹配([@Code],tblCodes[代码],0)) 问题在于序列号#1234001:当代码都是数字时,匹配不起作用,因为LEFT()函数总是返回字符串“1234”,并

我有两张桌子:

tblCodes包含两列:

代码(4字符代码可以是文本或数字)、代码名(文本描述)

tblSerialNum包含3列:

SerialNum列(可以是文本或数字)

使用LEFT()函数,代码列是SerialNum的前4个字符

“代码名”列使用索引/匹配查找与代码匹配的代码名:

=索引(tblCodes[代码名],匹配([@Code],tblCodes[代码],0))

问题在于序列号#1234001:当代码都是数字时,匹配不起作用,因为LEFT()函数总是返回字符串“1234”,并且在代码表中找不到它,因为它读取的是数字1234

我无法将tlbSerialNum[Code]列中的值转换为数字,因为有些是文本“x333”

我已经尝试将tblCodes[Code]列格式化为文本,但该函数仍然将1234视为数字

我可以在tblCodes[Code]中键入'1234,使用撇号强制将其作为文本,但我不想依赖我的用户总是记住以这种方式输入


有什么建议吗?

将公式中的所有内容更改为文本:

=INDEX(tblCodes[Code Name],MATCH([@Code]&"",tblCodes[Code]&"",0))

这现在是一个数组公式,根据用户的版本,可能需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter键进行确认。

将公式中的所有内容更改为文本:

=INDEX(tblCodes[Code Name],MATCH([@Code]&"",tblCodes[Code]&"",0))

这现在是一个数组公式,根据用户的版本,可能需要在退出编辑模式时使用Ctrl-Shift-Enter键而不是Enter键进行确认。

!我曾尝试将&“”添加到搜索范围中,但没有意识到它使其成为一个数组函数,这就是为什么它对我不起作用。Ctrl+Shift+Enter成功了。谢谢顺便说一句,与我之前使用的内联公式相比,数组公式会给表增加很多开销吗?我在一张表格上有几列这样的内容>1000行,用于条形码扫描仪连续扫描多行。是的,请确保将查找范围限制在尽可能小的范围内。太棒了!我曾尝试将&“”添加到搜索范围中,但没有意识到它使其成为一个数组函数,这就是为什么它对我不起作用。Ctrl+Shift+Enter成功了。谢谢顺便说一句,与我之前使用的内联公式相比,数组公式会给表增加很多开销吗?我在一张表格上有几列这样的内容>1000行,用于条形码扫描仪连续扫描多行。是的,请确保将查找范围限制在尽可能小的范围内。