Googleスプレッドシートで、ある列の値によってグループを分け、グループごとに文字列を連結した結果を得る方法です。グループ化集計の文字列版と言えばわかりやすいかもしれません。
- MAP/LAMBDA関数やUNIQUE関数等を使って、グループごとの文字列連結を行うことができます。
手順
B列に都県名が、C列には各都県に属する市名が記録されています。
E3セルに式を入力し、重複を除いた都県名と、各都県に属する市名を(・を挿んで)連結した文字列を表示しています。
E3セル
=MAP(UNIQUE(B3:B10), LAMBDA(x,{x,JOIN("・",FILTER(C3:C10,B3:B10=x))}) )
「UNIQUE(B3:B10)」で都県名の重複を除き、その配列にMAP/LAMBDA関数でxと名付けています。
あとはMAP関数のはたらきにより、xの1つごとにFILTER関数を実行し、抽出した市名をJOIN関数で連結し、最後に{ }演算子でxと横並びに表示しています。単にFILTER関数の条件を「B3:B10=UNIQUE(B3:B10)」とするのではうまくいかず、MAP関数により解決しています。
なお、ソートには全く手を付けていませんので都県名、市名ともに初出順になります。
区切り文字(・)が要らない場合はJOINの第1引数を空文字列にするかCONCATENATEに代えるかすればOKです。