📊つかえる関数.com

重複なしのソート済みリストを自動生成する方法は?

結論

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歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
動的配列関数は未対応動的配列関数は未対応対応対応対応

実務での使用例

担当者リストの自動生成

取引履歴から担当者名を抽出し、プルダウンリスト用のソースを自動作成

=SORT(UNIQUE(B2:B1000))
  1. UNIQUE関数でB列の担当者名から重複を除去
  2. SORT関数で昇順(あいうえお順)に並べ替え
  3. データ→データの入力規則で、ソースにこの数式の範囲を指定
  4. 新しい担当者が追加されると自動的にプルダウンに反映

商品カテゴリのプルダウン

商品マスタから重複なしのカテゴリリストを生成

=SORT(UNIQUE(FILTER(C2:C500, C2:C500<>"")))