条件を満たした値だけを結合した文字列を取得する(TEXTJOIN,IF)
TEXTJOIN 関数を使用するとセル範囲に含まれるセルの値を区切り文字を間に挟みながら結合することができますが、 IF 関数を組み合わせることで条件に一致したセルの値だけを選んで結合することができます。ここでは Excel の関数である TEXTJOIN 関数と IF 関数を組み合わせて、条件を満たした値だけを結合した文字列を取得する方法について解説します。
(Last modified: )
条件を満たす値だけを結合する
指定したセル範囲に含まれるセルの値を順に結合するときに、条件を満たしたセルだけを結合する方法です。次のシートを見てください。
名前と合否の結果が表示された表があります。この中で "合格" となっている名前だけを結合した文字列を取得してみます。 C9 セルに次のような数式を入力しました。
=TEXTJOIN(",",TRUE,IF(C3:C7="合格",B3:B7,""))
TEXTJOIN
関数の 2 番目の引数に TRUE を指定し空文字の場合は無視するようにしています。そして結合する文字列として、セル範囲 B3:B7 の中で C 列の値が "合格" のものはそのまま、 C 列の値が "合格" でなかった場合は 空文字に変換した配列数式を作成し指定します。空文字は無視されるため、結果として C 列の値が "合格" のセルだけが結合されます。
Enter
キーを押すと C9 セルには次のように表示されました。
同じように "不合格" となっている名前だけを結合した文字列を取得してみます。 C10 セルに次のような数式を入力しました。
=TEXTJOIN(",",TRUE,IF(C3:C7="不合格",B3:B7,""))
Enter
キーを押すと C10 セルには次のように表示されました。
セル範囲の中で、指定した条件を満たすセルの値をだけを選んで結合した文字列を取得することができました。
解説
TEXTJOIN
関数で結合するセル範囲を指定するところで IF(C3:C7="合格",B3:B7,"")
を指定してシートに入力されている値の中で、条件に一致しないものを空文字に変換した配列数式を作成しています。
実際にどのような配列数式を取得するのかを確認してみます。 D 列を追加し、結果を表示する D3:D7 を選択したあと、数式バーに次のように入力してください。
=IF(C3:C7="合格",B3:B7,"")
Ctrl
+Shift
+Enter
キーを押してください。 C 列の値が "合格" の場合はそのまま、 "合格" でない場合は空文字が表示されます。
このようにして IF
文を使って作成した配列数式を TEXTJOIN
の引数に指定しています。 TEXTJOIN
で空のセルの処理を指定する 2 番目の引数が TRUE なので、空のセルは無視されて結合されるため、結果として C 列の値が "合格" になっているセルの値だけが結合されました。
今回使用した関数の解説は下記を参照されてください。
-- --
Excel の関数である TEXTJOIN 関数と IF 関数を組み合わせて、条件を満たした値だけを結合した文字列を取得する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。