スティーブは列Aに3035551212などの電話番号を持っており、最初の3桁(市外局番)を調べて、その市外局番が関連付けられている状態を列Bに返すことができるようにしたいと考えています。彼はこれを達成するための最良の方法について疑問に思います。

Excelには、データを操作しようとしているときに作業を楽にする多くの機能があります。この場合、VLOOKUP関数を使用して、市外局番を対応する状態に一致させるのは簡単です。

関数を適用して必要な情報を取得する前に、取得するデータを含む単純なデータテーブルを作成する必要があります。この表では、市外局番と州をワークシート内の独自の列に並べて、市外局番で並べ替える必要があります。たとえば、F列に市外局番を、G列にそれらの市外局番の州を入力できます。市外局番と州は多くのWebサイトで見つけることができます。または、必要に応じて独自のテーブルを作成することもできます。

2つの列にデータを取得したら、それらの列を選択して、選択した範囲の名前を作成します。 (名前付き範囲の作成方法は、_ExcelTips._の他の問題で説明されています。)たとえば、範囲にStateCodesのような名前を付けることができます。この命名は、厳密には必要ではありませんが、ルックアップ式の使用を容易にします。

電話番号がセルA1にあり、州名を電話番号の横の列に返したいとすると、セルB1に次のように入力します。

=VLOOKUP(VALUE(LEFT(A1,3)),StateCodes,2,FALSE)

VALUE関数とLEFT関数は、電話番号から最初の3文字だけを引き出すために使用されます。次に、これをVLOOKUP式で使用して、StateCodesテーブルで市外局番を検索します。 Excelは、市外局番に対応する州の名前を返します。

市外局番(ルックアップに不可欠)を引き出すことができるもう1つの方法は、次のようにFLOOR関数を使用することです。

=VLOOKUP(FLOOR(A1/10000000,1),StateCodes,2,FALSE)

このアプローチでは、電話番号を番号として保存する必要があるため、10,000,000で割ることができることに注意してください。

ここで説明するアプローチは、電話番号が常に指定された形式(3035551212)である場合に、うまく機能します。電話番号の形式が異なる場合(おそらく括弧とダッシュを使用する形式)、数式は機能せず、市外局番が実際に電話番号のどこにあるかを確認するように調整する必要があります。単一の形式ではない電話番号がある場合、すべての賭けは無効になり、検索を実行するタスクははるかに困難になります。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(8063)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。