• 締切済み

excel 重複除外、0以上をカウントする方法

はじめまして。 皆様のお力をお貸しください。 現在、重複除外された、値が0以上(スペースもカウントしない)の数を カウントするやり方を探しています。 エクセルのバージョンは2007です。 例: ユーザID 金額 123       1000 456       100 789       200 012       0  123       100 となっている時、「3」と表示される (ユーザIDが012と一番下の123はカウントしない) ※なお、このデータには0以外にも、空白なども入っています。     エクセルに求めすぎな気もしますが、もし何かあるのなら教えていただきたいです。 よろしくお願いします。

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.6

>エクセルに求めすぎな気もしますが、もし何かあるのなら教えていただきたいです。 既に幾つかの方法が提示されていますが1つの案として提言します。 他の回答者と同様に作業用列を使う方法になります。 A列にユーザーID B列に金額 C2セルにカウント値(目的の値) D列を作業用 D2=IF(AND(COUNTIF(A$2:A2,A2)=1,B2<>0),1,"") D2セルを下へ必要数コピーする C2=SUM(D:D)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

あ、式はもう少し簡単にできましたね。 =IF(B2=0,0,1/COUNTIFS(A:A,A2,B:B,">0"))

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

作業列をつかいます。 添付の図のようにデータが2行目から始まっているとして、C2セルに↓の式を入れて下までコピーします。 そのC列の合計「=SUM(C:C)」がお望みの値になります。 =IF(B2=0,0,(B2>0)/COUNTIFS(A:A,A2,B:B,">0"))

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>値が0以上(スペースもカウントしない)の数をカウントする >ユーザIDが012(中略)はカウントしない となっていたため、012をカウントしない理由は、IDが0から始まっているためであると勘違いしてしまいました。  ですから、D2セルに入力する関数を次の様な関数と差し替えて頂く様御願い致します。 =IF(INDEX($A:$A,ROW())="","",IF(OR(COUNTIF($A$1:INDEX($A:$A,ROW()),INDEX($A:$A,ROW()))>1,INDEX($B:$B,ROW())=0),"",1))  それ以外の点は、回答No.1と同様です。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

例が良くないので解りづらいです。 最後のユーザID 123が除外されるのは ・ユーザIDが重複しているから ・金額「100」が他(ユーザID456)と重複しているから どちらでしょう?

ne200098
質問者

補足

分かりにくくてすみません。 カウントしない理由は、ユーザーIDが重複しているからです。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 今仮に、ユーザIDと入力されているセルがA1セルであるものとします。  又、各ユーザIDが入力されているセルの書式設定の表示形式は[文字列]となっているものとします。  まず、適当な列(ここでは仮にD列とします)の2行目のセル(D2セル)に次の関数を入力して下さい。 =IF(INDEX($A:$A,ROW())<"1","",IF(COUNTIF($A$1:INDEX($A:$A,ROW()),INDEX($A:$A,ROW()))=1,1,""))  次に、D2セルをコピーして、D3以下に貼り付けて下さい。  そして、カウント結果を表示させるセルには次の関数を入力して下さい。 =SUM($D:$D)  以上です。

関連するQ&A