Googleスプレッドシートで、一定の条件付きで文字列を抽出して結合する方法についてです。実用性を考慮し、区切り文字を挿んで結合するものとします。
- FILTER関数とJOIN関数を使って、条件にマッチする文字列を結合することができます。
手順
条件に直接マッチする文字列を結合する例
画像ではB列に県名が、C列に市町名が記録されています。
そこでE2セルに式を入力し、C列の市町名のうち市の名前(最後の文字が「市」であるもの)だけを抽出して結合しています。
E3セル
=JOIN(",",FILTER(C3:C10,RIGHT(C3:C10)="市"))
FILTER関数とRIGHT関数を使い、C列の値のうち一番右の文字が「市」であるものを抽出し、JOIN関数で結合しています。
なお、RIGHT関数の第2引数を省略すると1文字だけ抽出できます。
こちらでは、市町名に「原」の字を含むものを抽出して結合しています。
E3セル
=JOIN(",",FILTER(C3:C12,REGEXMATCH(C3:C12,"原")))
REGEXMATCH関数を使って「原」を含むものを抽出してJOIN関数で結合しています。
文字列のマッチングには上記のRIGHT関数のほかLEFT関数やFIND関数などが利用できますが、このREGEXMATCH関数が最も汎用性が高いので覚えておいて損はないと思います。
条件にマッチするセルに対応する文字列を結合する例
画像では、神奈川県に属する市町名をカンマ付きで結合しています。
E3セル
=JOIN(",",FILTER(C3:C12,B3:B12="神奈川県"))
これもFILTER関数を利用してB列が「神奈川県」である行のC列の値を抽出し、JOIN関数で結合しています。
SUMIFの文字列結合版のようなものですが、案外気づきにくい使い方かもしれません。