Excel 将带字母的数字与数字区别对待,即使格式相同

Excel 将带字母的数字与数字区别对待,即使格式相同

我有诸如 4BU 之类的数字,可以通过以下公式正确处理:

=IF($B8<>"";VLOOKUP("*"&$B8&"*";Sheet1!$A:$J;1;FALSE);"")

如果找到该号码,它会显示出来

但是我也有像 578 这样的数字,只输出 #N/A。它们都被格式化为文本(此示例中为 B8 和 A:J),但它们的处理方式不同。

我注意到,当我从公式中去除通配符时,没有字母的数字会起作用,但这会使公式变得无用。我该如何解决这个问题?

答案1

以数组格式使用:

=IF($B8<>"";INDEX(Sheet1!$A1:$J100;MATCH("*"&$B8&"*";Sheet1!$A1:$A100&"";0);1);"")

作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter。如果操作正确,Excel 会绕过{}公式。

另外,作为数组公式,引用需要限制在数据集中,而不是整个列。我只引用了前 100 行,请将其更改为您的数据集。

答案2

您的 VLookup 公式

=IF($B8<>"";VLOOKUP("“&$B8&”";Sheet1!$A:$J;1;FALSE);"")

正在寻找细绳包含单元格 B8 中的所有内容。正如您所发现的,数字不是字符串。如果将其格式化为文本,它仍然不是字符串。您可以通过将查找表中的值从 更改为 来测试这一点578'578现在您应该能够通过在单元格 B8 中输入578(或像 这样的子集)来找到它。78

如果您无法修改查找表中的所有数字,我能想到的唯一解决方案是创建一个单独的列,其中包含已转换为字符串的 A 列副本。例如,在 Sheet1 的 K 列中,您可以创建 A 列的副本并附加一个空字符串。在单元格 K1 中输入,然后将其复制下来。现在将您的搜索=$A1&""更改为K 列而不是 A 列。VLOOKUP

相关内容