重複なしのソート済みリストを自動生成する方法は?
結論
UNIQUE関数で重複除去し、SORT関数で並べ替えることでプルダウンリスト用のソースを自動生成できます。
詳しい解説
UNIQUE関数とSORT関数を組み合わせることで、重複を除いたソート済みリストを自動生成できます。`=SORT(UNIQUE(A2:A100))` とすると、A列のデータから重複を除いて昇順に並べ替えたリストが作成されます。この結果をデータの入力規則のソース範囲として指定すると、プルダウンリストが常に最新の状態に自動更新されます。手動でリストを管理する必要がなくなり、データ入力の効率が大幅に向上します。
旧バージョンでの代替方法
COUNTIF+IF配列数式で重複除外(全バージョン)Excel 2016以降
UNIQUE関数が使えない2019以前では、COUNTIF関数とIF関数を組み合わせた配列数式で重複を除外できます。ただし記述が複雑になります。Ctrl+Shift+Enterで確定してください。
=IFERROR(INDEX($A$2:$A$100, MATCH(0, COUNTIF($C$1:C1, $A$2:$A$100), 0)), "")データ→重複の削除(全バージョン)Excel 2016以降
手動操作で重複を削除するなら「データ」タブ→「重複の削除」を使います。元データが変わると再実行が必要ですが、全バージョンで利用可能です。
フィルターオプション(詳細設定)で重複なし抽出(全バージョン)Excel 2016以降
「データ」タブ→「詳細設定」→「重複するレコードは無視する」にチェックして別の場所に出力します。静的な一覧を作成する場合に便利です。
よくあるエラーと対処法
#SPILL!原因: UNIQUE/SORTの結果を展開するスピル範囲に他のデータが入っています。
対処: UNIQUE関数を入力したセルの下方向(スピル範囲)を空にしてください。
#CALC!原因: UNIQUE関数にFILTERを組み合わせた場合、FILTERの条件に一致するデータが0件のとき発生します。
対処: FILTER関数の第3引数に代替テキストを指定するか、IFERROR関数で囲んでください。例: =IFERROR(SORT(UNIQUE(FILTER(A2:A100, B2:B100="条件"))), "")
#NAME?原因: Excel 2019以前ではUNIQUE関数が存在しないため、関数名自体がエラーになります。
対処: Excel 2021/2024/365に移行するか、COUNTIF+IF配列数式の代替方法を使用してください。
バージョン対応
| Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| 動的配列関数は未対応 | 動的配列関数は未対応 | 対応 | 対応 | 対応 |
実務での使用例
担当者リストの自動生成
取引履歴から担当者名を抽出し、プルダウンリスト用のソースを自動作成
=SORT(UNIQUE(B2:B1000))- UNIQUE関数でB列の担当者名から重複を除去
- SORT関数で昇順(あいうえお順)に並べ替え
- データ→データの入力規則で、ソースにこの数式の範囲を指定
- 新しい担当者が追加されると自動的にプルダウンに反映
商品カテゴリのプルダウン
商品マスタから重複なしのカテゴリリストを生成
=SORT(UNIQUE(FILTER(C2:C500, C2:C500<>"")))