Goolgeスプレッドシートでは
一致するキーが複数ある場合、VLOOKUP関数では最初に見つかった結果を返します。
本投稿では一致するすべての結果を返したくて、QUERY関数を使ってみました。
課題
VLOOKUP関数では一致する最初に見つかった結果だけを返す
解決策
QUERY関数で一致するすべての結果を返す
こういうことがしたい
E2に検索結果を返す
- D2の値に一致するものを
- B列の中から探して
- A列の値を返す
- 複数結果がある場合は改行を入れる
今回書いた関数
=JOIN(char(10),QUERY(A:B,"select A where B = '"&D2&"'"))
関数の意訳
JOIN:指定した区切り文字を使用して1次元配列の要素を結合
char(10):セルの中で改行する(今回はこれを区切り文字にする)
QUERY:クエリ言語を使用して、データ全体に対するクエリを実行
A:B:検索範囲
select A:A列の値を返す
where B:B列内で検索する
D2:D2の値に一致するものを探す
参考
VLOOKUP
QUERY
Merge cells with Join formula and CHAR(10)
QUERY syntax using cell reference