ヘッダーによる列検索付きVlookup

0
2022.04.07

助けてほしい。システムから「データ」レポートをダウンロードしていますが、その中の列の順序は異なっていても、そのヘッダーは常に同じで、最初の「ID」列が常に最初になります。データ」シートから、行が常に「ID」を持つ最初の列を示す値を検索し、「データ」シート全体で「レポート」と同じヘッダーを持つ列を検索し、その値に一致する値を「レポート」に表示させる必要があります。vlookupのようなもので、列のインデックスを指定しないだけです。クエリで試してみましたが、理解できません。

=QUERY(Data, "select * where A = """&$A3&""" and F Matches """&F1&""",0)

https://docs.google.com/spreadsheets/d/16yPVdOEgCraTHv9R2Qzmxme7hJpzwNRxcW12F7LhXs8/edit?usp=sharing

回答
1
2022.04.07

レポートシートのB2から下と右をすべて削除します(つまり、残っているのはCol AとRow 1のデータだけであるはずです)。

セルB2に次の数式を入力します。

=ArrayFormula(IF(A2:A="",,IFERROR(VLOOKUP(A2:A,Data!A:H,HLOOKUP(FILTER(B1:1,B1:1<>""),{Data!1:1;COLUMN(Data!1:1)},2,FALSE),FALSE),"???")))

これは通常のVLOOKUPのように動作してIDを見つけ、HLOOKUP(列番号の上に'Data'ヘッダー)を採用してVLOOKUP列の要求を返します。

一致するものがない場合、IFERRORはエラーではなく、より友好的な"?

この式は、できるだけ柔軟になるように書かれている。唯一変更したいのは、Data!A:HにData-sheetの全範囲(例:'Data!A:BB'など)を反映させることですが、これは私が推測できなかったことです。これがあれば、あとはCol AやRow 1のヘッダー範囲にデータを追加していけば適応されます。