【スプレッドシート】UNIQUE関数の使い方|1列中で、重複する名前の数をかぞえよう


こんにちは、Forkusです!

今回は、重複するデータを一意の値で表示する、UNIQUE関数をご紹介します。

お題はこちら↓

上司
品名別の出荷回数が知りたいのう。
部下
水色枠の中にまとめてあります!!
確かに、左図のままで、品名ごとに出荷回数を数えるのは大変です。

一方、水色枠では、コラムAで重複していた品名が一意で表示され、その出荷回数(何回重複しているか)もまとめられています。


実はこれ、UNIQUE関数に少し工夫を加えるだけで簡単に実現できます!

「一意」はIT用語で、「重複しない・ユニークの」を意味します。

【スプレッドシート】UNIQUE関数を使って重複する文字や数字を一つにまとめよう

2019.02.01

1. UNIQUE関数で、一意の値を抽出しよう


優しい先生
UNIQUE関数は、ある範囲の中にある重複データを省いて、一意の値のみで表示させる関数です。

1-1. UNIQUE関数の使い方

  1.  つくりかた
  2. = UNIQUE(重複データを消したい範囲)

  3.  今回のケースではどうなる?
  4.  上を参考にして、次の式をつくろう
  5. = UNIQUE(A3:A10) 

  6.  セルD3に、 を入力しよう
  7.  UNIQUE関数を入力するのは、コラムの先頭セル(=D3)のみです。それ以下は自動で入力されます。続くセルを空欄にしておきましょう。


  8.  もし、追加の野菜がある場合は?
  9.  もし、追加の野菜がある時は、範囲選択を「セルA3以下に続くセル全て= A3:(から続く)A(列全て)」としましょう。これで、ほうれん草より下にも入力できますね。
    = UNIQUE(A3:A)

優しい先生
無事に、一意の野菜名だけが表示されましたね。UNIQUE関数は、選択範囲の内容が変更、又は追加されても、それを自動で反映する便利な関数です。

2. COUNTIF関数で、出荷回数をもとめよう


優しい先生
COUNTIF関数は、ある範囲の中に、指定した条件と同じ値が何個あるのかを求めます。

2-1. COUNTIF関数の使い方

  1.  つくりかた
  2. = COUNTIF(調べたい範囲, 一致条件)

  3.  今回のケースではどうなる?
  4.  上を参考にして、次の式をつくろう
  5.  = COUNTIF(A3:A10,D3) 

  6.  セルD3に、 を入力し、一番下までコピペしよう
  7.  A3:A10には、絶対参照($)をかけています。式を下にコピペするとき、範囲も一つづつズレないようにするためです。A3:A10を選択後、”F4”キーを押すことでかかります。

    Windows F4 | Mac fn + F4

優しい先生
無事、出荷数が求められましたか?
これで目標のテーブルはひとまず完成です。一方、この方法では、別々の関数を2つの列に挿入し、さらに最下行まで絶対参照と共にコピペする必要があり、もし品目数が大量にある場合、手作業では大変です。より簡単な方法をみてみましょう。

3. ArrayFormula関数をつかえば、面倒なコピペいらずに!


優しい先生
ArrayFormula関数は、Formula(式)を自動でArray(配列)させる関数です。1つのセル内から、広範囲に渡ってある関数を自動で配置し、従来手作業で行っていたコピペの手間を省きます。

3-1. ArrayFormula関数の使い方

  1.  つくりかた
  2. = ArrayFormula(アレイフォーミュラを掛けたい関数)

  3.  前項で使ったCOUNTIF関数を例に、試してみよう

  4.  Before (同上。絶対参照をつけ、手作業で下にコピペ)
     = Countif($A$3:$A$10,D3) → 最下行までコピペ


     After (COUNTIF内で範囲D3:D6を指定し、ArrayFormulaを使用)
     = ArrayFormula(Countif(A3:A10,D3:D6)) → E3以降は自動入力

     ArrayFormulaを入力するのが面倒という方は、次のショートカットキーによって一瞬で入力可能です。

    Windows Ctrl + Shift + Enter  | Mac  + Shift+ Enter

優しい先生
上の例では、ArrayFormula関数によって作業が効率化した、と考えにくいかもしれません。一方、もし1000行あったら、と考えてみてください。手作業でコピペするのは大変ですよね。

4. Curly Bracketsをつかえば、1つのセルで全てが完結!


優しい先生
Curly Bracketは、別名「中括弧(ちゅうかっこ)」と呼ばれ、”{_}”を表します。使い方は簡単で、”{関数X,関数Y}”のように2つの関数をカッコ中に挟むことで、関数Xを入力したセルに、関数Yはその右隣のセルに配置されます。つまり、1つのセルから2つのセルを扱えます。

4-1. Curly Bracketの使い方

  1.  つくりかた
  2. = {関数1, (その右横に配置する)関数2}

  3.  今回のケースではどうなる?
  4.  上を参考にして、次の式をつくろう
  5.  ={UNIQUE(A3:A10), ARRAYFORMULA(COUNTIF(A3:A10,UNIQUE(A3:A10)))} 

  6.  セルD3に、 を入力しよう
  7.  Curly Bracket(中括弧)内では、既視/ 既存の関数はそのまま使わないといけないというルールがあります。今回、既にD列で” UNIQUE(A3:A10)”が使用されている為、続くCOUNTIF関数でも同じく”UNIQUE(A3:A10)”を”D3:D6″の方が簡単でもあるにも関わらず使っています。


優しい先生
お疲れ様でした。これで、全ての工程を1つのセル・式で終えることが出来ました。1つのセル・式内で全ての作業を済ますメリットはGASによって関数配置する際に動作が重くならない点です。