エディには、123/45678または011/00345の形式の一連の部品番号があります。

彼は別のテーブルから対応する部品番号の名前を検索する必要があります。このテーブルは3つの列で構成されています。最初の列には、スラッシュの前の部品番号の部分(123や011など)が含まれ、2番目の列にはスラッシュの後の部分(45678や00345など)が含まれます。 3番目の列には、Eddieが検索する名前が含まれています。

エディが抱えている問題の一部は、テーブル内で、それぞれが部品番号の一部を含む2つの列が数値であるということです。したがって、完全な部品番号は011と00345ではなく、11と345です。

Eddieは、部品番号(123/45678または011/00345)のルックアップ式をまとめて、テーブルから適切な部品名を返す方法を考えています。

まず、部品番号を含むテーブルにいくつかの変更を加える必要があります。最初の2列は、数値ではなくテキストとしてフォーマットする必要があります。これにより、これらの列の値がテキストとして扱われるため、最初の列に「011」を入力すると、先頭のゼロが保持されます。

列をテキストとしてフォーマットする前にすでに011として値を入力している場合でも、11として表示されます(先行ゼロなし)。列の形式を変更するだけでなく、先行ゼロを含む部品番号フラグメントを再入力する必要があります。

次に、部品番号テーブルに列ヘッダーが含まれていることを確認する必要があります。この例では、3つの列ヘッダーがLeft、Right、およびNameであることを確認してください。 (これらのヘッダーを太字で下線を引くと、各列の値と区別するのに役立ちます。)次に、次の手順に従って、個々の列の名前を作成します。

。部品番号テーブルのセルを選択します。テーブルの各列に新しく作成されたヘッダーも選択してください。

。 [挿入] | [挿入]をクリックします名前|定義します。 Excelに[名前の作成]ダイアログボックスが表示されます。

。 [一番上の行]チェックボックスのみが選択されていることを確認してください。

。 [OK]をクリックします。

部品番号テーブルを準備したら、部品番号を検索する準備が整います。ルックアップ値(123/45678および011/00345)のすぐ右側のセルに、配列数式を入力します。最初の部品番号がセルA1にあるとすると、セルB1に次の配列数式を入力します。

=INDEX(Name,MATCH(A1,Left&"/"&Right,0))

これを配列数式として示すには、Shift + Ctrl + Enterを押して入力することに注意してください。数式は、\ {中かっこ}で囲まれた数式バーに表示されます。必要に応じて、数式を列Bの他のセルにコピーできます。

数式は、対応する左列の値がスラッシュで連結され、右列の値がセルA1の値と一致する場合に、テーブルの[名前]列から値を取得することで機能します。一致するものがない場合、数式は#N / Aエラー値を返します。それ以外の場合は、目的の部品番号を返します。

このアプローチは、部品番号テーブルの最初の2列をテキストとしてフォーマットし、さまざまなセルに先行ゼロが含まれていることを確認した場合にのみ機能することに注意してください。何らかの理由で、テーブルの最初の2列をこのようにフォーマットできない場合(おそらく列が多すぎる場合)、使用しているルックアップ式を変更する必要があります。

=INDEX(Name,MATCH(A1,TEXT(Left,"000")&"/"&TEXT(Right,"00000"),0))

このバージョンの数式(配列数式として入力する必要があります)は、2つの場所でTEXT関数を使用して、左列と右列の値を変換し、先行ゼロを使用することに注意してください。

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

このヒント(2787)は、Microsoft Excel 97、2000、2002、および2003に適用されます。