我在計算列上執行 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 Numbers
在Source 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]
inXLOOKUP()
不需要聯繫和空字符串
筆記:顯示的電話號碼是隨機建立的假電話號碼,也請根據您的需求變更參考和範圍。