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 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 MobileSUBSTITUTE()Lookup_Table

ここに画像の説明を入力してください


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

double unary-->--またはが上記の式に1掛け算または割り算または加算される場合、 inは空の文字列に連絡する必要はありません。0[Lookup_Value]XLOOKUP()


注記:表示されている電話番号はランダムに作成された偽の番号です。また、参照番号と範囲は必要に応じて変更してください。


関連情報