- ベストアンサー
エクセルでの重複データをひとつにカウントする方法
下記のような事をやる数式が判らず、困っています。 晴 晴 晴 曇 曇 雨 雨 雨 上記で、重複するデータをひとつとカウントする方法(数式)を教えていただけますでしょうか? つまり、「晴」「曇」「雨」の3つ、という値を導き出したいのです。 CountIf等、色々やってみたのですが、できなくて・・・。 お手数をおかけしますが、よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。ちょっと説明不足だったので補足しておきます。 No.2の最初の数式 =SUMPRODUCT((MATCH(A1:A8,A1:A8,0)=ROW(A1:A8))*1) ROW(A1:A8) の A1:A8ですが、これはデータ範囲ではありません。 データが1行目以外から始まっている場合、 たとえば A2:A50にデータがあっても、ROW(A2:A50) とすると結果は 0になります。 ROW の( )内=引数は、セルの個数を指定してください。 A2:A50 がデータ範囲なら、セルの個数は 49個なので、ROW(A1:A49) とします。 必ず 1から指定してください。 データ範囲が A2:A50なら =SUMPRODUCT((MATCH(A2:A50,A2:A50,0)=ROW(A1:A49))*1) となります。 ◆ それと、No.2の 2つの式は両方とも、指定した範囲内に 1つでも空白セルがあるとエラーになります。 範囲内に空白セルがある場合とか、 いまは A2:A50にしかデータは入っていないけれど、今後もデータが増えるので、あらかじめ範囲を広くとっておきたいというような場合、 =COUNT(INDEX(1/(MATCH(A2:A100,A2:A100,0)=ROW(A1:A99)),0)) を試してみてください。 これも ROW の引数は、指定範囲のセルの個数です。 A2:A100 のセルの個数は 99個なので、A1:A99 と指定します。 データが何行目から始まっているかに関係なく、必ず 1から指定してください。 ★もちろん範囲内に空白セルがなくても正しい結果を返すので、式は多少長くはなりますがコレがいちばんオススメ!!です。 なら、はじめっからコレだけにしとけって言われそうですが‥
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
例データ A2:A13 晴 1 晴 晴 曇 2 雪 3 雨 4 雨 雨 霧 5 雹 6 雨 霧 ●作業列を使わない方法。 =SUM(IF(COUNTIF(OFFSET($A$2:$A$13,0,0,ROW(A2:A13)-1,1),A2:A13)=1,1,0)) と入れて、SHIFT+CTRL+ENTERを同時に押す。配列数式。 結果 6 ●作業列B列を使う方法 B2に=IF(COUNTIF($A$2:A2,A2)=1,MAX($B$1:B1)+1,"")を入れる。 それをB3:B13に式を複写します。 そのB列のMAXをとっても6が出ます。 =IF(COUNTIF($A$2:B2,B2)=1,1,"") として、その式を、B13まで式を複写し、SUMをとる手もあります。
- shiotan99
- ベストアンサー率68% (140/203)
こんにちは~ データが A1:A8にあるとして、 =SUMPRODUCT((MATCH(A1:A8,A1:A8,0)=ROW(A1:A8))*1) または =SUMPRODUCT(1/COUNTIF(A1:A8,A1:A8)) でどうでしょうか?
- miwaharu
- ベストアンサー率25% (29/112)
個数にもよりますが、ピボットテーブルで 並べ替えればいかがでしょうか?
お礼
皆様、色々と教えていただき、とても助かりました。 本当にどうもありがとうございました。