重複したデータから一意な値だけを抽出して合計値を求めてみる

大量のデータから一意な値だけを取り出すUNIQUE関数

データを管理・分析する上で欠かせない関数の一つです。

そしてUNIQUE関数は単体で使うというよりは、他の関数を組み合わせて使うことが多い関数。

UNIQUE関数の使い方そのものは難しくないものの、どのように他の関数と組み合わせて使うと効果的なのかは、ある程度の慣れが必要かと思います。

今回は、SUMIF関数と組み合わせて、一意な値の合計値を求めていくパターンを解説していきます。

にほんブログ村 IT技術ブログへ

UNIQUE関数とは?

UNIQUE関数とは、指定した範囲の中から一意な(ユニークな)値だけを抽出する関数です。

UNIQUE関数の構文は以下の通りです。

=UNIQUE(範囲, [by_column], [exactly_once])

範囲の部分でユニークな値を取り出したい列を指定します。

by_columnexactry_onceには、TRUEかFALSEを指定できますが、省略可能で、省略時はFALSEが指定された扱いになります。

by_columnexactry_onceをTRUEに指定して使う機会はあまり多くないので、ここでは省略します。

例として、下図のような表があった時に、ユニークな品種の名称を抽出していきます。

品種はC列のC2:C16の範囲にデータが入っているので、UNIQUE関数の書き方は以下のようになります。

=UNIQUE(C2:C16)

実際の結果は下図のようになります。

セルG2にUNIQUE関数を記述してみましたが、重複したデータが取り除かれて、ユニークな値のみ抽出されましたね。(重複の有る同一名称の品種に色を付けてみました)

【余談】

exactry_onceの部分をTRUEに指定すると、下図のように、重複があった値は削除され、全く重複の無かった値のみ抽出されます。

=UNIQUE(C2:C16,,TRUE)

UNIQUE関数の使い方のイメージはつきましたでしょうか?

UNIQUE関数を使うことで、品種のユニークな名称だけがわかるようになりました。

それでは次に、SUMIF関数を組み合わせて、品種ごとの在庫数を合計していきます。

UNIQUE関数とSUMIF関数を組み合わせて使う

まずはSUMIF関数の使い方を説明していきます。

SUMIF関数は指定した範囲の合計値を求めるSUM関数にIF関数の機能が付いた関数です。

SUMIF関数の構文は以下の通り。

=SUMIF(範囲, 条件, [合計範囲])

範囲は検索対象となる範囲を指し、条件はその範囲と適用する条件を記述します。

合計範囲は範囲と異なる場合に、合算する値の入った範囲を指定します。

先ほどのデータを例に、UNIQUE関数で抽出した品種ごとの在庫合計を求めていきましょう。

下図のように、品種の隣に「在庫合計」の欄を用意し、そこにSUMIF関数を仕掛けていきます。

在庫合計の欄(セルH2)に以下のようにSUMIF関数を記述します。

=SUMIF($C$2:$C$16,G2,$E$2:$E$16)

  • 範囲は品種の列を指すので、C2:C16とします。
  • 条件は、UNIQUE関数で抽出された値を利用するので、隣のセルG2を指定します。
  • 合計範囲は、在庫を合算したいので、E2:E16とします。

範囲と合計範囲は、コピーした時に参照がズレてしまうので、$を付けて絶対参照にします

このように記述し、セルH3~H9にもコピーしていくと、下図のようになります。

これで品種ごとの在庫合計数が求められましたね!

まとめ

関数それぞれの使い方はわかっても、「何をしたいか?」によってはいろいろと関数を組み合わせて使うことが多いと思います。

今回はUNIQUE関数とSUMIF関数を例に紹介しましたが、COUNTIF関数と組み合わせるとユニークな値の個数を数えられたり、AVERAGEIFと組み合わせるとユニークな値の平均値を求められたりと、いろいろなパターンが考えられます。

関数は使い方そのものも大事ですが、どう使えるか?という思考の方が重要だと思います。

これからも仕事で使いそうな、関数の組み合わせを記事にしていきたいと思いますので、読んでいただけたら幸いです。

代表的な関数の組み合わせに、MATCH関数とINDEX関数の組み合わせなどというのもありますので、ご参考までに・・・

にほんブログ村 IT技術ブログへ

コメント