\r\n\r\n

エクセルでユニークバリューを計算する方法

エクセルで重複した値を計算しない方法を、独自の計算式を使って紹介します...

Excelのデータセットには、同じ値が何度も列に含まれていることがよくあります。あるカラムにいくつのユニークな値があるかを知ることは、時に便利なことです。たとえば、ショップを経営していて、すべての取引を含むスプレッドシートがある場合、各取引をカウントするのではなく、ユニークな顧客が何人いるのかを判断する必要があるかもしれません。

これは、以下に紹介する方法で、Excelで固有値を計算することで実現できます。

カラムから重複データを削除する

Excelでユニークな値を計算する簡単で汚い方法は、重複する項目を削除して、残った項目の数を見ることです。すぐに答えが必要で、結果を記録しておく必要がない場合には、この方法がよいでしょう。

データを新しいワークシートにコピーする(必要なデータを誤って削除しないようにするため)。重複する値を削除したい値または列を選択します。データ] タブの [データツール] セクションで、[重複の削除] を選択します。これにより、重複するデータはすべて削除され、一意の値のみが残されます。

情報が2つの列に分かれている場合も、同じ手順で行えます。違いは、両方の列を同時に選択する必要があることです。この例では、姓を表す列が1つ、苗字を表す列が2つあります。

ユニークな値の数を把握したい場合は、数式を書くのが一番ですが、その方法を以下に紹介します。

関連:Excelでフィルタリングして目的のデータを表示させる方法

エクセルの計算式を使って一意の値を計算する

ユニークな値だけを計算するためには、いくつかのExcel関数を組み合わせる必要があります。まず、各値が重複していないことを確認し、次に残りの項目を計算する必要があります。また、配列関数を使用する必要があります。

答えを探すだけなら、以下の式でA2:A13の各インスタンスを使用するセルに置き換えてください。

{=SUM(IF(FREQUENCY(MATCH(A2:A13, A2:A13, 0), MATCH(A2:A13, A2:A13, 0)) >0, 1))}

そこに至る経緯は少し複雑なので、なぜこの式が成立するのかを理解したい方は、以下で少しずつ分解していきましょう。

配列関数の説明

まず、配列とは何かということから説明しましょう。配列は、複数の値を含む1つの変数です。Excelのセルを一つ一つ参照するのではなく、まとめて参照するようなものです。

私たちから見ると、これは不思議な違いです。セルA2:A13を通常の方法で、あるいは配列として表示するように数式に指示すると、データは同じように見えます。その違いは、Excelが裏でどのようにデータを処理するかにある。この微妙な違いは、古いバージョンのExcelでは区別がついたものの、最新のExcelではもはや区別がつかないほどです。

今回の目的では、配列の使い方を知ることがより重要です。最新版のExcelであれば、自動的に配列として格納されるので、その方がはるかに効率的です。古いバージョンの場合は、数式を書いた後にCtrl+Shift+Enterキーを押してください。この操作を行うと、数式は中括弧で囲まれ、配列モードであることが示されます。

周波数関数の導入

FREQUENCY関数は、ある数字がリスト内に現れる回数を教えてくれる。数字を扱う場合は良いのですが、私たちのリストはテキストです。この機能を使うには、まずテキストを数値に変換する方法を見つけなければならない。

数値のリストの中でユニークな値を計算したい場合は、次のステップをスキップすることができます。

マッチ機能を使う

MATCH関数は、値が最初に出現する位置を返す。この関数は、名前のリストを値に変換するために使用できる。

  • どのような価値を求めているのですか?
  • どのようなデータセットをチェックしているのですか?
  • 目標値に対して、高いのか、低いのか、それとも同じなのか?

この例では、Exelスプレッドシートの各顧客の名前を検索し、その名前と同じものが他の場所に現れるかどうかを確認します。

上記の例では、Tiah Gallagher (A2) のリスト (A2:A13) を検索し、完全に一致するものを求めています。最後のフィールドの0は、完全一致であることを指定する。この結果は、リストのどこに名前が最初に表示されるかを教えてくれる。この場合、最初の名前なので、結果は1です。

問題は、ティアだけでなく、すべてのお客さまに興味を持っていることです。しかし、A2だけでなく、A2:A13を検索しようとすると、エラーが発生します。そこで、とても便利なのが配列機能です。第1引数は1つの変数しか受け付けず、それ以外はエラーを返す。ただし、配列は1つの変数として扱われます。

この関数は、配列全体が一致するかどうかをExcelにチェックさせるものです。でも、ちょっと待ってください!結果は変わっていないんです。1と表示されたままですが、どうなっているのでしょうか?

この関数は配列を返します。配列の各項目に対して繰り返し処理を行い、一致するかどうかをチェックします。すべての名前の結果は配列に保存され、結果として返されます。セルは一度に1つの変数しか表示しないので、配列の最初の値を表示する。

これは、自分で確認することができます。最初の範囲を A3:A13 に変更すると、結果は 2 に変わります。これは、Eiliyah の名前がリストの 2 番目の位置にあり、この値が配列の最初の位置に保存されるようになったためです。最初の範囲をA7:A13に変更すると、チェックしたいデータセットの最初の位置にTiahの名前が現れるため、再び1が表示されます。

関連:実際の問題解決に役立つExcelの計算式

周波数関数の使用

名前を数値に変更したところで、FREQUENCY関数を使用します。MATCHと同様、探す対象とチェックするデータセットが必要です。繰り返しになりますが、一致させるためには、1つの値だけを探すのではなく、リストのすべての項目をチェックする関数にしたいのです。

FREQUENCY関数にチェックさせたい対象は、MATCH関数が返す配列の各項目です。MATCH関数が返すデータセットを確認したい。そこで、この2つのパラメータに対して、上で作成したマッチング関数を送信する。

もし、一意な番号を探していて、前のステップをスキップした場合は、2つのパラメータとして番号の範囲を送信することができます。リスト内のすべての数字を検索するには、配列関数を使用する必要があります。古いバージョンのExcelを使用している場合は、数式を入力した後にCtrl+Shift+Enterキーを押すことを忘れないでください。

ここでも、この関数は配列を返します。各一意な値の出現回数の配列が返されます。セルには、配列の最初の値が表示されています。この例では、Tiahの名前が2回出てくるので、返される頻度は2です。

if関数の使用

これで、一意な値と同じ数の値を持つ配列が出来上がりました。しかし、まだ終わってはいないのです。これを合算する方法が必要です。配列の値をすべて1に変換して合計すれば、ようやくユニークな値がいくつあるかがわかる。

0より大きい値をすべて1に変更するIF関数を作成すれば、すべての値が1に等しくなる。

そのために、IF関数で周波数配列の値が0より大きいかどうかをチェックするようにしたい。配列の最初の値が1として返されているのがわかると思います。

和の関数を使う

最終段階に入りました!最後のステップは、配列の合計です。

先ほどの関数を総和関数としてラップする。 できた!結局、以下の式になる。

{=SUM(IF(FREQUENCY(MATCH(A2:A13, A2:A13, 0), MATCH(A2:A13, A2:A13, 0)) >0, 1))}

エクセルでユニークアイテムを計算する

これは高度な機能で、Excelの知識が必要です。挑戦するのは勇気がいることです。しかし、一度設定すると非常に便利ですので、当社の解説をよく読んで理解していただくとよいでしょう。

ユニークなエントリを数える必要があまりない場合は、重複する値を削除する迅速で汚いトリックは、ピンチのときに動作します!

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ