
ジャンプリンク
UNIQUE 関数の構文
UNIQUE を使って一意の値を抽出する
UNIQUE で「1回だけ出現する値」を返す方法
他の関数と組み合わせた UNIQUE の活用
UNIQUE を使うときに起きる問題と対処法
概要 — UNIQUE 関数とは
UNIQUE 関数はその名の通り、配列(範囲)から一意の要素だけを抽出して返す動的配列関数です。元データに同じ値が複数回あっても、結果には各値が 1 回だけ表示されます。単一の列や行だけでなく、複数列(行の組合せ)にも適用可能です。
利用可能な Excel のバージョン: Microsoft 365、Excel for the web、Excel の iOS / Android アプリ、2021 以降にリリースされた一回購入型の Excel。

Microsoft 365 Personal
対応 OS
Windows、macOS、iPhone、iPad、Android
ブランド
Microsoft
Microsoft 365 は Word・Excel・PowerPoint などの Office アプリを最大 5 台で利用でき、OneDrive 1 TB などを含むサブスクリプションです。
UNIQUE 関数の構文
UNIQUE 関数は 3 つの引数を取ります(1 つ必須、2 つは任意):
=UNIQUE(a,b,c)- a: 一意な値を返したい配列(範囲)
- b: 真理値。行(FALSE)または列(TRUE)を比較するかを決める。省略時は FALSE(行)
- c: 真理値。”すべての一意値”(FALSE)を返すか、”ちょうど1回だけ出現する値”(TRUE)だけを返すか。省略時は FALSE
b と c を省略するとデフォルトは FALSE になります。つまり a のみを指定すると、配列内の一意な行が返されます。
UNIQUE を使って一意の値を抽出する
UNIQUE の標準動作は、配列から重複を取り除いて返すことです。1 次元配列(単一列・単一行)にも、2 次元配列(複数列・複数行)にも使えます。ここからは実務的な手順と注意点を含めて詳述します。
この記事の例で使われるサンプルワークブックは、説明に沿って操作しやすいようにシートごとに分かれています(ダウンロードして試すことをおすすめします)。
単一リストから一意の値を抽出する
UNIQUE は最も一般的には、重複したエントリが含まれる縦一列(テーブルの列)をクリーンアップするために使います。
以下の例では、テーブル名が T_PLWinners で、2010 年以降のプレミアリーグ優勝チームが縦に並んでいます。

重要な点: UNIQUE は大文字小文字を区別しません。つまり “Geek”、”geek”、”GEEK” は同一のテキストとして扱われます。
重複するチーム名があるため、Winner 列に対して一度だけ表示されるクリーンなリストを作るには、セル D2 に次の式を入力します:
=UNIQUE(T_PLWinners[Winner])テーブルの構造化参照は手動入力せず、列見出し上にマウスを置いて表示される下向きの小さな矢印をクリックして列全体を選択することで入力ミスを防げます。

この場合、b と c を指定する必要はありません。もしチームの一覧が行方向に広がっている(横並び)場合は、b に TRUE を指定します。
UNIQUE は動的配列関数なので、式を入力したセルから結果が自動で “spill”(展開)します。元データに行を追加すると結果も自動更新されます。
複数列(行の組合せ)から一意の組合せを抽出する
UNIQUE は複数列をまとめて参照し、行単位での一意な組合せを返すこともできます。たとえば賞の受賞者テーブル T_Prizes から、名(First)と姓(Last)の組合せを一意に抽出したいときの式は次のようになります:
=UNIQUE(T_Prizes[[First]:[Last]])
同じ名前(Tim)が複数回出現していても、姓が異なれば別の行として扱われます。テーブル全列を参照する場合は、構造化参照にテーブル名のみを使います。
抽出結果を動的配列(数式)から値に変換したい場合は、結果範囲を選択して Ctrl+C、次に Ctrl+Shift+V(値として貼り付け)を実行します。これで数式は削除され、表示値だけが残ります。
列ベースの組合せを抽出する場合は b に TRUE を指定してください。
UNIQUE で “1 回だけ出現する値” を返す
c 引数に TRUE を指定すると、配列内でちょうど 1 回だけ出現する値だけを返します。省略すると、重複を除いたすべての一意値が返されます。
たとえば T_Transactions テーブルで、1 回しか取引をしていない顧客だけを抽出する場合:
=UNIQUE(T_Transactions[Customer],,TRUE)
b と c の両方に TRUE を指定すると、”列” を比較しつつ、その列内で一度しか出現しない値だけを返す、という指定ができます。
他の関数と組み合わせた活用法
UNIQUE は単体でも便利ですが、他の関数と組み合わせることでさらに有用になります。ここでは代表的な組合せと用途、実運用上のヒントを示します。
以下の例はいずれも a 引数のみを使ったものですが、b/c を非デフォルト値にした UNIQUE にも同じ考え方で適用できます。
COUNTA と組み合わせて一意の値の数を数える
UNIQUE を COUNTA でラップすると、一意値の件数を求められます。たとえば T_PremChamp というテーブルの Winner 列から、何チームが優勝したかを数える式:
=COUNTA(UNIQUE(T_PremChamp[Winner]))UNIQUE が返す動的配列が増えれば COUNTA の結果も自動で増減します。
SORT と組み合わせて抽出結果を並べ替える
UNIQUE 単体だと元データに出現する順序で結果が返るため、アルファベット順などで整列させたい場合は SORT でラップします:
=SORT(UNIQUE(T_PremW[Winner]))これにより一意リストを理論上生成し、SORT が表示上アルファベット順に並べ替えます。
FILTER と組み合わせて条件付きで一意値を抽出する
FILTER で条件に合うレコードを抽出してから UNIQUE に渡すことで、条件を満たす値のうち重複を取り除けます。たとえば、T_Votes テーブルで得票率が 50% を超えた候補者を一意に抽出したい場合:
=UNIQUE(FILTER(T_Votes[Name],T_Votes[Vote%]>0.5))このあと必要なら SORT を適用してください。
FILTER、COUNTIF、UNIQUE を組み合わせて複数回出現する値を抽出する
少し応用的ですが、複数回出現する値だけを抽出し、かつ重複を取り除きたい場合は次のようにします:
=UNIQUE(FILTER(T_PWin[Name],COUNTIF(T_PWin[Name],T_PWin[Name])>1))COUNTIF 部分で各名前の出現回数を計測し、2 回以上 (>1) のものだけを FILTER で抽出、UNIQUE で重複を排除します。
注: >2 を使えば 3 回以上出現するものを抽出できます。条件は自由に変更できます。
よくあるエラーと対処法
使用環境や式の書き方によって、UNIQUE が期待通り動作しないケースがあります。以下は代表的な問題と解決策です。
| | 問題 | | 意味 | | 対処 | |—|—|—|—|—|—|—| | | #NAME? エラーが出る | | 使用中の Excel が UNIQUE をサポートしていない | | Microsoft 365、Excel for the web、モバイル、または 2021 以降の一回購入版に切り替えてください | | | | #SPILL! エラーが出る | | 動的配列の展開先セルが他の内容で遮られている | | 結果を出力しようとしている範囲のセルをクリアする。もし式をテーブルのセルに直接入力している場合は、テーブルを通常の範囲に変換してから試す | | | | #REF! エラーが出る | | 他のブックの配列を参照しているが、そのブックが閉じている | | 参照しているブックを開いてから再試行 | | | | 数式に問題があるという警告が出る | | 数式が正しく入力されていない可能性 | | “OK” をクリックすると問題のある箇所が数式バーでハイライトされる。該当部分を確認・修正するか、ヘルプを参照する | |
Important: ロケールによっては関数の区切り記号(カンマかセミコロン)や関数名自体が異なる場合があるので、ご利用の Excel の言語設定に注意してください。
実務で使うときのチェックリスト(役割別)
データ分析者、BI エンジニア、Excel 管理者向けに短い実行チェックリストを用意しました。
データ分析者
- 元データをテーブル形式に変換しておく
- 大文字小文字の違いを統一(必要なら UPPER()/LOWER() を適用)
- 結果をソートしたいか確認(必要なら SORT を追加)
- 結果を別シートに出すことで SPILL! を回避
BI エンジニア
- 他ブック参照の必要性を確認(閉じたブック参照は避ける)
- 大量データでのパフォーマンスに注意(COUNTIF 等のネストは重くなる)
- 自動更新の要件に応じて動的配列をそのまま使うか、値として保持するか決定
Excel 管理者
- 対応バージョンの周知とテンプレート配布
- 共通ルール(例: 名前の正規化)をドキュメント化
- ユーザー向けトラブルシューティング手順を準備
小さな SOP(手順書): 一意リストを作って配布するまで
- 元データを選択し、[挿入]→[テーブル] でテーブル化
- 抽出したい列のヘッダー名を確認
- 出力先セルに =UNIQUE(テーブル名[列名]) を入力
- 必要なら =SORT(UNIQUE(…)) を使って並べ替え
- 結果を別シートにコピー&値貼り付け(必要に応じて)
- ファイルを保存・配布(参照ブックがある場合は同梱またはアクセス手順を明記)
テストケースと受け入れ基準
テスト項目の一例:
- 単一列の重複除去: 元データに重複があるとき、出力は各値が 1 回だけ表示されること
- 複数列の組合せ: 同名だが姓が異なる場合は別行として返ること
- c = TRUE の動作: ちょうど 1 回出現する要素だけが返ること
- 大文字小文字: 大文字小文字を区別しないこと
- SPILL! の回避: 出力先に既存セルがある場合はエラーになること
受け入れ基準: 上記テストに全て合格し、エラーが発生した場合は説明文に従って対処できること。
よくある誤用と回避方法(カウンター例)
誤用: テーブル内で UNIQUE を直接入力して、スピル先に別のテーブル列がある場合
- 回避: 出力先をテーブル外の空セルにするか、テーブルを範囲に変換する。
誤用: 参照先が閉じたブックのテーブルを指定する
- 回避: 参照ブックを開くか、参照を同一ブックに移す。
誤用: 文字列の前後に不要な空白がある(”Team “ と “Team” を別扱いにしたい場合)
- 回避: TRIM() を活用して正規化する。
代替アプローチと比較
短い比較マトリクス:
UNIQUE
- 長所: 動的、列/行の組合せ対応、他関数と組合せやすい
- 短所: 一部古い Excel では使えない
データタブの [重複の削除]
- 長所: GUI で簡単、既存ワークシートで即適用
- 短所: 元データを書き換える(元に戻せない場合がある)
ピボットテーブル(GETPIVOTDATA)
- 長所: 集計と組合せて一意値を表示可能
- 短所: 設定が必要、柔軟性が UNIQUE より低い場合がある
FILTER + COUNTIF
- 長所: 条件つき抽出と件数判定が可能
- 短所: 結果に重複が残るため UNIQUE と組合せる必要がある
選択のヒント: 動的に更新したい場合や結果を別シートで参照したい場合は UNIQUE が第一選択。単発で元データを書き換えてもよい場合は [重複の削除] を利用してもよい。
実務上のパフォーマンス注意点
- COUNTIF や複雑なネストは大規模データで処理時間が増加します。
- なるべくテーブルや範囲を絞って参照する(列全体参照を避ける)。
- 動的配列のスピル先に他の数式やデータを置かない。
トラブルシューティング手順(ランブック)
- #NAME? が出たら: 使用中の Excel が対応しているか確認
- #SPILL! が出たら: スピル範囲を確認し、ブロックしているセルをクリア
- #REF! が出たら: 参照先のワークブックを開く
- 数式警告が出たら: 数式バーでハイライトされる部分を修正
- パフォーマンス問題: COUNTIF 等のネストを一時的に外して再検証
ローカライズとロケール注意点
- 関数区切り文字: 一部ロケールではカンマ(,)ではなくセミコロン(;)を使用します。ご利用の Excel の設定に合わせてください。
- 関数名の言語: Excel の表示言語が日本語の場合、関数名は英語表記のままでも動作しますが、ヘルプや UI 表示は日本語です。
- 日付や数値の表記: 結果を表示・配布する場合は、受け手のロケールに合わせて表示形式を固定しておくと誤解が減ります。
エッジケース・ギャラリー(遭遇例と対処)
- 空白セルが混じっている場合: 空白が一意値として返されることがある。FILTER と組み合わせるか、UNIQUE の前に空白を除去する。
- NULL 値やエラー値が混在している場合: IFERROR でラップしてから UNIQUE を使うと安定する。
- 非表示フィルタを含むテーブル: フィルタリングされた結果に対して UNIQUE を適用したいなら、FILTER で表示条件を指定する。
小さな事実ボックス(Fact box)
- 利用対象: Microsoft 365、Excel for the web、モバイル、Excel 2021+
- 主な用途: 重複除去、一意値カウント、条件付き一意抽出
- 動作形態: 動的配列(スピル)
1 行辞書(簡潔な定義)
- 動的配列: 数式の結果が複数セルに自動で展開される Excel の仕組み。
- スピル: 動的配列がセルに展開されること。
例: 実務向けテンプレート(チェックリスト表)
| ステップ | 実行項目 | 期待結果 |
|---|---|---|
| 1 | 元データをテーブル化 | テーブル名が設定される |
| 2 | 列名を確認 | 構造化参照が使える |
| 3 | =UNIQUE(テーブル[列]) を入力 | 重複のないリストがスピルする |
| 4 | 必要なら SORT や FILTER を追加 | 並べ替え・条件抽出が行える |
| 5 | 値として固定する(必要時) | 数式依存を排除できる |
マインドセットと判断基準(ヒューリスティックス)
- 可逆性が必要か: 元データを書き換えてよい場合は “重複の削除” ツール、可逆性が必要なら UNIQUE
- 自動更新が必要か: 動的更新が必要なら UNIQUE
- パフォーマンス重視か: 大量データで COUNTIF ネストは避け、ピボット等他手段を検討
コピー&ペースト用スニペット(よく使う式)
- 単一列の一意値(ソートなし):
=UNIQUE(TableName[ColumnName])- 一意値をアルファベット順に:
=SORT(UNIQUE(TableName[ColumnName]))- 条件付きで一意値(Vote% > 50%):
=UNIQUE(FILTER(T_Votes[Name],T_Votes[Vote%]>0.5))- 2 回以上出現する名前だけを抽出:
=UNIQUE(FILTER(T_PWin[Name],COUNTIF(T_PWin[Name],T_PWin[Name])>1))決断フローチャート(簡易)
以下は UNIQUE を使うべきか簡単に判断するためのフローです。Markdown の Mermaid を使って表示できます。
flowchart TD
A[一意な値が必要か?] -->|いいえ| B[UNIQUE は不要]
A -->|はい| C[元データを変更して良いか?]
C -->|はい| D[重複の削除(GUI)を検討]
C -->|いいえ| E[UNIQUE を使用]
E --> F{並べ替えが必要か}
F -->|はい| G[SORT'UNIQUE'...'']
F -->|いいえ| H[UNIQUE'...']プライバシーと運用上の注意
- 個人データを抽出する場合、抽出後のファイル共有には組織のデータ保護ポリシーを順守すること。
- 顧客名や個人識別情報を扱うときは、必要最小限の抽出に留め、アクセス権限を適切に設定してください。
UNIQUE 関数はシンプルながら多用途で、正しく使えばデータの正規化やレポート作成で大きな時間短縮になります。特にフィルタやソート、集計関数と組み合わせることで、単なる重複除去以上の価値を発揮します。一方、古い Excel 環境やスピル範囲のブロックなど想定される落とし穴もあります。本稿のチェックリストとランブックを参照し、実務で安全に導入してください。
まとめ: UNIQUE は動的配列を前提にした一意抽出の標準ツールです。用途に応じて SORT、FILTER、COUNTIF、COUNTA と組み合わせ、出力の安定性とパフォーマンスに配慮しましょう。