Excelで重複値と一意の値をカウントする方法 - TechRepublic

Excelで重複値と一意の値をカウントする方法 - TechRepublic

重複値を数えることは、定義が難しいテーマです。重複とは何を指すのでしょうか?Excelでは、同じ列内に重複した値が存在する場合と、レコード内のすべての値が重複している行が存在する場合があります。

この記事では、同じ列内の重複値に焦点を当てます。重複値を数え始めると、もっと多くの情報が必要になることがよくあります。例えば、その逆、つまり列内に重複しない値がいくつあるかという情報が必要になる場合もあります。

重複値と一意の値をカウントする方法はいくつかあります。ほぼすべてのデータセットで使用できます。また、.x​​lsx または .xls 形式のデモファイルをダウンロードすることもできます(ただし、この記事では .xls 形式の具体的な手順は説明していません)。Excel で重複値を検索する方法(カウントする方法ではなく)については、以前の記事「Excel で重複値を検索する方法」をご覧ください。

COUNTIF()を使用する

図 A は、目的を達成する COUNTIF() 関数を示しています。

COUNTIF(B:B,B2)

図A

COUNTIF() は重複する種をカウントします。

重複した値の数をカウントするのではなく、指定された範囲内で値が出現する回数をカウントします。厳密に重複をカウントする場合、値の最初の出現はカウントに含めません。

ご覧の通り、この関数は正しいカウントを返し、簡単に修正できます。この構造の主な問題は、B:B参照です。レコードの追加や削除には便利ですが、連続していない値も評価してしまいます。データセットに以下の値のいずれかを入力すると、図Bに示すように、実際のデータ範囲外であっても、関数はそれをカウントに追加します。

図B

参照は連続しない値を評価します。

重複をビューから削除する

COUNTIF() 関数は適切ですが、データセット全体ではなく、一意の値のリストが必要な場合があります。この場合、図Cに示すように、ピボットテーブルを使用できます。このビューを作成するには、次の手順を実行します。

  1. 種の値 (B2:B5 の任意のセル) をクリックします。
  2. [挿入] タブをクリックし、[テーブル] グループの [ピボットテーブル] をクリックします。
  3. 表示されるダイアログのすべてのデフォルト値を受け入れ、[OK] をクリックするだけです。
  4. ピボットテーブル フィールド リスト (右側) で、[Species] フィールドを [行ラベル] および [値] セクションにドラッグします。

図C

同じものを両方のセクションにドラッグすると、一意のカウントが強制されます。

小計の使用

最初の2つの解決策のいずれかで、ほとんどの状況に対応できるでしょう。ただし、Excelの小計機能を使うこともできます。これはデータをグループごとに集計する機能です。ただし、最初にデータを並べ替える必要があるため、それほど便利ではありません。もしそれが問題にならない場合、あるいはそもそもそうしたい場合は、小計機能の使用を検討してください。

  1. まず、並べ替えたい列をクリックしてデータを並べ替えます。次に、「ホーム」タブの「編集」グループにある「並べ替えとフィルター」をクリックし、ドロップダウンリストから「AからZへの並べ替え」を選択します。
  2. データを並べ替えたら、[データ] タブをクリックします。
  3. [アウトライン] グループで、[小計] をクリックします。
  4. 表示されるダイアログで、データのパラメータを設定します。今回は「種」フィールドを選択し、「Count」関数を指定します(図D)。
    図D
  5. [OK]をクリックします。

この機能を使用すると、各グループの下に小計行が挿入されます。この場合、列の総計もオプションで表示されます(図E)。

図E

各グループの下に小計行が表示されるようになりました。

一意の値を数える

重複を数えることの裏返しとして、一意の値の数を数える方法があります。従来の方法はSUMPRODUCT()関数を使うことです。この解決策は古くから存在しており、私が考案したわけではありません。私の知る限り、Excelにはまだ一意の値を数える組み込み関数がありません。一意の値を数える場合は、次の式を使用してください。

=SUMPRODUCT((範囲<>””)/COUNTIF(範囲,範囲&””))

図 F は、この関数がサンプル データでどのように機能しているかを示しています… まあ、こんな感じです。

図F

列内の一意の値の数を返します。

ご覧の通り、関数

=SUMPRODUCT((B:B<>””)/COUNTIF(B:B,B:B&””))

4 を返しますが、一意の値は 3 つあります。問題は列参照です。何も問題はありませんが、関数は列全体(B1 の文字列 Species を含む)を評価するため、実際には列 B には 4 つの一意の値が存在します。ヘッダーテキストを削除できる場合は、この式は有効です。削除できない場合は、図 Gに示すように、最終的な値から 1 を減算してください。

図G

表現を洗練させる。

重複など

重複という文脈では、定義は異なります。このケースでは、関数と2つの組み込み機能を使用して、同じ範囲内で値が繰り返される回数をカウントしました。次に、式を使用して、同じ範囲内の一意の値の数を返しました。

Officeに関するご質問をお送りください

読者からの質問には可能な限りお答えしますが、必ずお答えできるとは限りません。ご連絡の際は、できるだけ具体的にご記入ください。例えば、「ワークブックのトラブルシューティングをして、問題点を修正してください」といった質問ではおそらく回答が得られないでしょうが、「この数式が期待どおりの結果にならない理由を教えていただけますか?」といった質問であれば、回答が得られるかもしれません。私はTechRepublicから時間や専門知識に対する報酬を受け取っておらず、読者から料金を請求することもありません。ご連絡は[email protected]までお願いいたします。

アフィリエイト開示: TechRepublic はこのページで紹介されている製品およびサービスから手数料を得る場合があります。

Tagged: