将数据类型设置为字符串以便 XLOOKUP 可以工作

将数据类型设置为字符串以便 XLOOKUP 可以工作

我在计算列上运行 XLOOKUP 时遇到了一些问题:

在我的源表中,我有一个电话号码列表,其列类型设置为常规,输入为 1##########。这些值未计算。

在我的查找表中,我有相同的电话号码列表,格式为 (NNN)NNN-NNNN,然后我创建了一个列来正确格式化查找的电话号码:

="1" & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E2,"(",""),")",""),"-","")," ",""),".","")

这正确地产生了匹配,从视觉上看,似乎与我的源表(C)和查找表(F)匹配。

源表

源表

查找表

查找表

但是,我没有看到使用此 XLOOKUP 的匹配项:

=XLOOKUP([@[Phone Number]],'Data'!F:F,'Data'!G:G,"No Match", 0,1)

作为一个简单的测试,如果我手动在 H 列中输入完全相同的数据并进行更改,XLOOKUP 就会起作用。

我尝试将两列格式化为“文本”和“常规”,但没有成功。Excel 中有没有办法说“嘿,此列是字符串,请按字符串处理?”

答案1

如果理解正确的话Phone NumbersSource Table格式为数字/常规,而在Lookup Table它被格式化为文本,因为附加内容使用-->1连接起来。&Ampersand

进一步调查,您可能会发现,Excel默认情况下数字是,right aligned而文本是,left aligned除非您格式化了对齐方式,但从屏幕截图来看似乎并非如此,您也已经确认了Source数据格式。此外,当您在 中输入数字时,Excel除非事先格式化,否则它将显示为General


你需要做什么?

empty string-->内""连接[Lookup_Value]Source Table应用如下所示的公式,它应该适合您:

在此处输入图片描述


• 单元格中使用的公式G4

=XLOOKUP(F4&"",B4:B8,C4:C8,"No Match",0,1)

以上也可以写成:

=XLOOKUP(F4:F5&"",B4:B8,C4:C8,"No Match",0,1)

在 OP 的上下文中,公式如下:

=XLOOKUP([@[Phone Number]]&"",'Data'!F:F,'Data'!G:G,"No Match", 0,1)

此外,如果您可以访问MS365,我强烈建议您使用以下公式Person Account Mobile代替SUBSTITUTE()Lookup_Table

在此处输入图片描述


=1&CONCAT(TEXTSPLIT(A4,{"(",")","-"," ","."},,1))

如果将double unary-->--1乘以或除以或0添加到上面的公式中,则[Lookup_Value]不需要XLOOKUP()接触和空字符串


笔记:显示的电话号码是随机创建的假号码,请根据您的需要更改参考和范围。


相关内容