残業を減らす!Officeテクニック
Excelで明細データから報告用サマリを自動作成! 必要な情報を1つのセルにまとめる技
2026年6月8日 06:55
セミナーの開催履歴や営業活動の記録など、1件につき1行の明細形式で管理されている表がありますよね。しかし、全体をとりまとめて報告書などに掲載する際には「セミナーごとの担当者一覧」のように、複数のデータを1つのセルへまとめて表示したいことがあります。
もちろん、データを分析する際にはフィルターの機能やPower Queryを利用して、該当者を抽出することもできますが、1つのセルにまとめるには、抽出した結果をコピーして貼り付けたうえで、「,」を入力しながら連結する必要があります。
今回は、明細形式の表から項目単位でデータを自動的にとりまとめるテクニックを紹介します。
UNIQUE関数で一意のデータを取り出す
まずは、UNIQUE関数を利用して明細データからセミナー名だけを重複なく抽出します。指定した範囲から重複を除いた値だけを取り出せます。さらにSORT関数を組み合わせると、昇順に並べ替えられます。ただし、文字列の読みの順ではなく、文字コード順となります。
FILTER関数で該当するデータを抽出する
セミナー名に対応する担当者を抽出するには、FILTER関数を利用します。ここでは挙動を確認しやすいよう、TRANSPOSE関数を組み合わせて横方向に表示してみましょう。
例えば「Copilot活用」の担当者を抽出する場合は、次のような数式になります。数式をコピーすることを考慮して、FILTER関数の引数に指定するセル範囲は絶対参照で指定しています。
=TRANSPOSE(FILTER($D$2:$D$27,$C$2:$C$27=F2))
UNIQUE関数で重複を除く
しかし、該当の担当者は取り出せましたが、担当者が重複しているのは問題です。UNIQUE関数を組み合わせて取り除きましょう。FILTER関数で抽出した結果に対してUNIQUE関数を適用し、その結果をTRANSPOSE関数で横方向へ表示するため、TRANSPOSE関数は一番外側に配置します。
先ほど入力した数式の「TRANSPOSE(」の後ろにカーソルを移動して「uni」と入力し、入力候補として表示されたUNIQUE関数を選択して[Tab]キーを押します。「UNIQUE(」と入力されたら、そのまま[Enter]キーを押します。最終的な数式は以下のようになります。
=TRANSPOSE(UNIQUE(FILTER($D$2:$D$27,$C$2:$C$27=F2)))
TEXTJOIN関数で1つのセルへまとめる
最後に「,」を挟んで、1つのセルにまとめましょう。TEXTJOIN関数を利用します。区切り文字はダブルクォーテーション(")で囲んで指定します。修正後の数式は以下のようになります。2つ目の引数[空のセルは無視]は「TRUE」とします。
=TEXTJOIN(",",TRUE,TRANSPOSE(UNIQUE(FILTER($D$2:$D$27,$C$2:$C$27=F2))))
一気に連結するならTRANSPOSE関数は不要
ここまで挙動を確認するために順を追って数式を修正してきましたが、区切り文字の「,」とデータを連結するなら、TRANSPOSE関数は不要です。FILTER関数で取り出したデータの重複をUNIQUE関数で除外し、TEXTJOIN関数で「,」を挟んで連結します。
=TEXTJOIN(",",TRUE,UNIQUE(FILTER($D$2:$D$27,$C$2:$C$27=F2)))
FILTER関数とTEXTJOIN関数を組み合わせれば、明細データからサマリを効率よく作成できるようになります。明細形式のデータを集約したい場面で活用してみてください。






































