1つのシートのテキストデータを使用して別のシートを検索し、3番目のシートにデータを出力します。

1つのシートのテキストデータを使用して別のシートを検索し、3番目のシートにデータを出力します。

別のシートの一致するデータを使用して、シートからデータを取得しようとしています。2 番目のシートの名前データを 2 番目のシートの名前列と比較し、その行の名前列に同じテキストが含まれる各情報行を取得する数式が必要です。

Sheet1 は複数の列を持つテーブルです。Sheet2 は名前のリストです。Sheet3 は出力シートです。

Sheet1 は次のようになりますが、列が多くなります。

名前 | 参照 | 住所 | 日付

ジョー 123 グリーンレーン 2020年3月24日

デイブ 567 ブルーストリート 20.03.2020

グレース 245 レッドボーン 21.03.202

ジェリー 875 イエローアベニュー 2020年3月22日

Sheet2 は単なる名前のリストであり、その一部は sheet1 にあります。

名前

ジョー

ベン

デイブ

百合

私がやろうとしているのは、シート 3 で、テーブルの各行をシート 2 の名前と一致する名前で出力することです。したがって、以前に示した例を使用すると、望ましい結果は次のようになります。

名前 | 参照

ジョー123

デイブ 567

(私が欲しいのはこれら 2 つの情報だけだと仮定します)。

私の推測では、これは何らかの VLOOKUP 関数または INDEX 関数ですが、これまで Excel でこれらの機能を使用したことがなく、私の限られたスキルで再利用できるほど私の質問に近い既存の回答を見つけることができません。

最初のシートには、約 2500 のエントリを含むテーブルが含まれています。2 番目のシートと比較したい列は F で、テーブルでは「名前」というタイトルになっています。

2 番目のシートの列 M には、名前の単純なテキスト リストが含まれています。テーブルとしてフォーマットされていません。

3 番目のシートは空白で、結果を出力します。

テーブルから特定のビットだけを取得できない場合は、行全体を取得しても大きな問題にはなりません。

答え1

Sheet1のTable1の名前が一意であると仮定すると、Sheet3の名前の列に次のように入力できます。

=IFERROR(INDEX(Sheet2!M:M, AGGREGATE(15, 7, ROW($2:$999)/COUNTIF(Table1[Name], Sheet2!M$2:M$999), ROW(1:1))), "")

その他の情報列は、単純な INDEX/MATCH ペアを使用して、Sheet1 の Table1 から取得できます。追加の INDEX/MATCH を使用してテーブルの列を選択すると、Sheet3 のヘッダー テキストに基づいて検索が動的になります。

=INDEX(INDEX(Table1, 0, MATCH(B$1, Table1[#Headers], 0)), MATCH($A2, INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)), 0))

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

関連情報