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

时间:2020-06-18 20:50:41

标签: excel

我有2张桌子:

tblCodes 包含2列:

代码(4个字符的代码可以是文本或数字),代码名称(文本描述)

tblSerialNum 包含3列:

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

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

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

= INDEX(tblCodes [代码名称],MATCH([@@ Code],tblCodes [代码],0))

sample tables

问题在于序列号1234001:当代码全为数字时,MATCH不起作用,因为LEFT()函数始终返回字符串“ 1234”,并且在代码表中找不到它,因为读为数字1234。

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

我尝试将tblCodes [Code]列设置为文本格式,但该功能仍将1234视为数字。

我可以使用撇号将'1234输入到tblCodes [Code]中,强制将其作为文本输入,但是我不想依靠用户始终记住以这种方式输入它。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

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

这是一个数组公式,在退出编辑模式时,可能需要使用Ctrl-Shift-Enter而不是Enter来确认具体取决于版本。