ExcelのUNIQUE関数で担当者一覧を作る!一度だけの人との違いも確認

※本記事には広告・アフィリエイトリンクが含まれます。

案件表から、担当者の名前だけ抜き出したい。同じ人が何行もあるから、コピーして、一人ずつ消して……あれ、青木さん、さっきも残したっけ?
その作業なら、まずUNIQUE関数を候補にしよう。

ExcelのUNIQUEは、指定した範囲から重複をまとめた一覧を返す関数です。元の案件表を削らず、別の場所へ担当者一覧を出せます。ただし、「全員を一人ずつ」と「一度だけ出てくる人」は別の結果。ここを取り違えると、よく登場する担当者ほど一覧から消えてしまうんです。

この記事は、架空の六行の表で、範囲と結果の意味を整理します。実在の社員名簿や業務実績ではありません。Microsoft 365、Excel 2024、Excel 2021など、UNIQUEを使える環境を確認してから、練習用シートで一緒に見ていこう。

目次

六行の担当者から三人の一覧へ。まずは一列だけを指定する

次の表を、説明用にA1から入力したと考えてください。A列が担当者、B列が部署。見出しは1行目、データは2〜7行目です。「青木」「佐藤」「田中」は、ここではそれぞれ一人の担当者を表すものとします。

担当者 部署
青木 営業
佐藤 制作
青木 営業
田中 営業
佐藤 制作
青木 制作

元の六行を残したまま、D1へ「担当者一覧」と書き、D2へ次の式を入れます。D2より下は、結果を出せるよう空けておこう。

=UNIQUE(A2:A7)

この例で一覧に出るのは、青木、佐藤、田中の三人です。同じ担当者名が二回、三回とあっても、一覧にはそれぞれ一回ずつ。青木さんの案件行が元の表から削除されるわけではありません。六行の案件表と三人の担当者一覧が、別々の役割で残ります。

かっこの中のA2:A7は、「どこから一覧を作るか」という指定です。ここをB2:B7へ替えれば、部署の一覧を作る式になります。担当者を出したいのに、部署の列を選んでいないか。数式を入れる前に、見出しを一つ確かめると迷いにくいよ。

見出しのA1を含めてA1:A7にすると、「担当者」という見出しも抽出対象になります。結果の先頭に見出しらしき文字が出ても、Excelが気を利かせて表題を付けたのではなく、選んだ範囲にそのセルが入っているためです。出力側の見出しは、自分でD1へ用意して分けておこう。

ここまでできれば、同じ名前を目で追いながら消していく作業から、一歩離れられます。うわ、三人の一覧が先に出ると、見たいものがはっきりするね。ただし、これは人数集計や担当件数の計算をしたわけではありません。まずは「どんな名前があるか」を返した結果です。

関数の範囲や引数の読み方を本でも確かめたいなら、インプレスの『できるExcel関数 Copilot対応 Office 2024/2021/2019&Microsoft 365版』があります。出版社は関数の基本と活用、参照・抽出などを扱う構成を案内しています。個々の関数が使える版は、書名だけでなく関数側の対応表も合わせてね。

範囲や引数の基礎を学ぶ『できるExcel関数』をISBNで探す

出典:Microsoft「UNIQUE関数」、インプレスの書籍紹介。表と数式への当てはめは本記事の説明例です。

TRUEを最後に入れると、青木さんも佐藤さんも出なくなる

検索で見つけた式にTRUEが付いている。なら、付けたほうがきちんと重複を消せそう?
そこは、付ける位置と意味を見たいところです。UNIQUEの基本の形は、次のようになります。

=UNIQUE(配列,[by_col],[exactly_once])

角かっこは「省略できる引数」を表す説明上の記号で、実際の式へ入力する物ではありません。最初が対象の範囲、二つ目が比較する向き、三つ目が「一度だけ現れる行や列に限るか」です。

先ほどの担当者の列で、三つ目をTRUEにした式は、こうです。

=UNIQUE(A2:A7,FALSE,TRUE)

この例で返るのは、田中だけ。青木は三回、佐藤は二回登場するため、「一度だけ現れる」という条件には入りません。最後のTRUEは、同じ人を一人分へまとめる合図ではなく、一回しか登場しない人だけを選ぶ指定なんですね。

ここが分かると、結果が少なすぎるときの見方が変わります。「青木さんが消えた! 元データがおかしい?」と慌てる前に、三つ目の引数を見よう。全員の重複をまとめたいだけなら、最初に使った=UNIQUE(A2:A7)のように省略できます。

二つ目のFALSEは、行同士を比較する指定です。今回のように名前が縦に並ぶ一覧では、この向きで考えます。TRUEへ替えるのは列同士を比較したい場合で、「部署の列も追加する」「結果を横向きに並べる」という意味ではありません。

引数を覚えるときは、TRUEの数だけを記憶するより、「何を出したい?」を横に書くのがおすすめです。「全員を一人ずつ」なら通常の一覧。「一回だけ出た人」なら三つ目をTRUE。この例の三人と一人を見比べれば、目的の違いを確かめられます。

実務で三つ目を使うなら、何を一回と数えるかも確認しておこう。説明例は一行を一件の記録として並べていますが、同じ案件が二行に分かれる表なら、担当者名が二回あっても案件が二件とは限りません。関数が判断するのは指定範囲の出現で、仕事の事情まで自動では読み取りません。

本で関数を調べるときも、式の形だけでなく、その引数がどんな結果を選んでいるかを見ると理解しやすくなります。まず自分の小さな例で、返ってほしい名前を手で書いてから式と比べてみてね。

引数の意味から調べられるExcel関数の入門書を見る

出典:MicrosoftのUNIQUE構文・by_col・exactly_onceの説明。架空の六行で、各名前の出現回数を照合した例です。

氏名だけと、氏名・部署の組み合わせは別の一覧になる

さっきの表では、青木に「営業」と「制作」の二つが付いています。担当者名だけなら一人としてまとまりますが、担当者と部署の組み合わせを知りたいなら、A列だけでは足りません。

別の空いた場所で、次のようにA列とB列をまとめて指定します。先ほどの結果と重ならない場所で試すか、例ごとに出力位置を分けてね。

=UNIQUE(A2:B7)

省略時は行同士を比較するため、この場合は二列の組み合わせが一致するかを見ます。結果は「青木・営業」「佐藤・制作」「田中・営業」「青木・制作」の四組です。青木の名前が二行に見えても、部署が違うので同じ組ではありません。

「UNIQUEを使ったのに、青木さんが二回いる」は、必ずしも失敗ではないんです。氏名と部署を一組で指定したなら、この結果は表の内容に合っています。名前だけの名簿が欲しいのか、担当と部署の組み合わせが欲しいのか、見る列を決めよう。

反対に、部署の列を無視して名前だけを一人分にまとめた結果から、所属部署を一つに確定することもできません。例の青木には二種類の記録があるので、どちらが現在の部署なのかはこの表だけでは決まりません。最新の所属を知りたいなら、日付や社員マスターなど、別の判断材料が必要です。

同姓の人がいる職場なら、氏名の列を一意の人物の識別に使えるかも考えたいね。今回は説明上、一つの名前が一人を表すと置きました。実際には社員番号など、区別に使う正式な項目があるかを確認します。「姓が同じだから同一人物」と関数に判断させないためです。

抽出前のメモは、「一行が何を表すか」だけでも役立ちます。担当者一人なのか、担当者と部署の組なのか、取引先と担当窓口の組なのか。それが決まると、範囲を一列にするか複数列にするかを選びやすくなるんです。

複数列の結果を出す場合は、右側の空きも必要になります。縦だけ空いている細い余白へ、二列の結果を押し込もうとしないこと。見出しも「担当者」「部署」と二つ用意すれば、受け取る人が四組の一覧だと理解しやすくなります。

参照・抽出を本で学ぶ際は、「どの列が必要か」を先に考えてから該当する説明を読むと、自分の表へ置き換えやすいよ。関数名を増やすより、今回ほしい一行の意味を一つ言えるところから始めよう。

参照・抽出を扱う『できるExcel関数』の書籍情報を見る

出典:Microsoft「UNIQUE関数」の配列と比較方向、出版社の章構成。社員番号などの選び方は、実務へ当てはめる際の提案です。

下へ広がる結果は、先頭セルで直す。行を増やす日も範囲を見よう

D2に式を一つ入れたのに、D3やD4にも名前が出た。これは結果が隣接するセルへ広がる「スピル」という動作です。三人分なら三行へ、結果の数に合わせて配置されます。

数式を入れるのは先頭のセルだけで、D3、D4へ同じ式をコピーする必要はありません。逆に、結果の途中の名前を手入力で直そうとするのも、この一覧の使い方とは違います。数式の変更は、スピル範囲の左上、今回ならD2で行います。

#SPILL!が出たら、結果を置く場所が何かにふさがれていないかを確認してみて。Microsoftは、出力先に既存のデータがある例を説明しています。エラーだからといって、周囲のセルをいきなり消す必要はありません。そこに必要なメモがあるなら、一覧の出力先を別の空いた場所へ移す方法も考えよう。

元の表へ一人追加したときはどうでしょう。A8に新しい担当者を入力しても、式がA2:A7のままならA8は対象の外です。「データが増えると動的に変わる」という説明は、選んでいないセルまで何でも自動で読み込む、という意味ではないんです。

毎回増える一覧なら、元データをExcelテーブルにし、構造化参照で列を参照する方法があります。たとえば元テーブルの名前を「案件一覧」、列見出しを「担当者」にした場合は、次の形です。これは、その名前のテーブルと列があることが前提になります。

=UNIQUE(案件一覧[担当者])

Microsoftは、テーブルへデータを追加・削除したとき、構造化参照に応じて配列範囲も調整されると説明しています。ただし、スピルする数式そのものをテーブルの内側へ置くのではありません。元データはテーブル、UNIQUEの結果はテーブル外の空きセル、と役割を分けます。

名前がまだ入っていない行を大量に範囲へ含める場合も、今回の六行の例と同じ結果になるとは決めないでね。空白をどう扱いたいかは別に考える必要があります。まず実際に入っている範囲で結果を確かめ、空白を除外する条件が必要ならFILTER関数などとの組み合わせを検討します。

最初から何千行も選んで困るより、小さな範囲で三人が返ること、行を足す場合に参照先も追随することを順に確かめる。表を作る手と、結果を読む目を同じ速度で進めていこう。

数式と表の基本から学ぶExcel関数の本を確認する

出典:Microsoft「動的配列数式とスピル配列の動作」、UNIQUEのテーブル参照に関する注意。テーブル名は説明用の指定です。

元の案件を消す操作とは分けて、共有する一覧の意味を添えよう

担当者の名簿ができた。では、同じ名前の元の行はもう不要?
ここで元の案件表へ戻ってほしいんです。青木が三行あっても、それぞれ別の案件なら、重複して不要なデータとは限りません。担当者一覧では一人にまとめても、案件の記録は必要なままです。

Excelのメニューにある「重複の削除」は、UNIQUEで別の一覧を返す作業と違います。Microsoftは、削除すると対象範囲のデータが削られるため、元の範囲を別シートや別ブックへコピーしておくよう案内しています。

さらに、重複を判断する列だけにチェックを入れたとしても、その列の文字だけが消えるとは限りません。選択した表や範囲の中では、重複と判定された行のほかの列も削除の対象になります。「担当者の欄だけをすっきりさせたい」のつもりで案件を落とさないよう、今回は元データを残して一覧を返す方法から考えよう。

共有前には、その三人が何を表すかを一行添えます。たとえば「対象の六行に登場する担当者を、重複をまとめて一覧化」。一回だけの人を出したなら、「六行のうち一度だけ登場する担当者」。同じ名前の一覧でも、使う条件が違えば意味も違います。

相手のExcelでUNIQUEが使えるかも確認したいね。MicrosoftのUNIQUE専用ページでは、Microsoft 365、Excel 2024、Excel 2021などが対応先に挙げられています。説明書の別ページにExcel 2019の名前があるからといって、UNIQUEも使えるとは判断しません。関数ごとの案内を見ます。

別のブックの範囲を参照する場合にも制限があります。Microsoftは、ブック間の動的配列は双方が開いている場合に限って対応し、参照元を閉じて更新すると#REF!になると案内しています。自分のPCで元ブックを開いたまま動いた結果だけで、共有先でも同じとは決めないようにしよう。

紹介している関数本は、ISBN9784295020783、出版社案内では2024年12月刊・320ページです。書名に2019など複数の版が入っていても、掲載されるすべての関数がすべての版で使えるという意味にはなりません。購入前は使うExcelの版と、学びたい項目の対応を合わせてね。書籍全ページを確認したレビューではなく、公開されている書誌・内容紹介に基づく案内です。

同じISBNのExcel関数本と購入する版・形式を確かめる

まずは六行から、ほしい三人を出してみよう。一度だけの田中さんを探す式と、全員の一覧を作る式が違うと分かれば、TRUEを足す前に立ち止まれます。名前を一つずつ消すより先に、「誰を残したい一覧なのか」を決める。次の担当者表は、そこから作っていこう。

出典:Microsoft「重複しない値を抽出する、または重複する値を削除する」、UNIQUEの対応先とブック間の制限、インプレスの書誌情報。

  • URLをコピーしました!

この記事を書いた人

仕事の段取りや伝え方、道具の選び方を検証し、実践しやすく紹介する編集部です。

目次