VBAのDictionary代わりにUNIQUE関数で一意リストを作る方法は?
結論
UNIQUE関数でVBAのDictionary相当の重複削除が1行で実現
詳しい解説
VBAでCreateObject("Scripting.Dictionary")を使って重複削除していた処理は、Excel 2021/365のUNIQUE関数で置き換えられます。`=UNIQUE(範囲)`だけで重複を除いた一意リストが得られ、元データの追加や変更に自動追従します。`=UNIQUE(FILTER(...))`のように他の動的配列関数と組み合わせれば、条件付き一意リストも簡単に作成できます。VBAのようにループ処理やDictionaryオブジェクトの管理が不要で、メモリ効率も良好です。
執筆・検証:田中 けんた|Excel歴15年・MOS資格保持
バージョン対応
| Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| 非対応 | 非対応 | 対応 | 対応 | 対応 |
実務での使用例
顧客リストから重複を削除
顧客リストから重複を削除
=UNIQUE(A2:A100)東京都の顧客のみ一意抽出
東京都の顧客のみ一意抽出
=UNIQUE(FILTER(A2:B100, B2:B100="東京都"))