[[20100110203201]] 『条件付きカウント』(きーちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件付きカウント』(きーちゃん)

excelを使ってある条件のもとで、数を数える、数えないようにしたいのですが。。。

【データ】

 A列        B列

 1 商品コード   カウント数

 2   0         0

 3   100                0

 4   200                0

 5   300                1

 6   555                1

 7   555                0

 8   800                1

 9   810                1

 10  950                1

 11  800                0

       合計カウント  5

 ◆条件1:「商品コード」が「0」「100」「200」のコードは数のカウントをしない。
 ◆条件2:同じ商品コードが2つ以上ある場合、1つはカウントするが、2個目からはカウントしない。

最終的に『カウントの合計数を求めたい』のですが(この場合は5になるように)、どのように関数を組んだらいいのかさっぱりわかりませんので、どなたか教えていただきたいです。
きっとCOUNTやCOUNTIFを使うとおもうのですが…。

 よろしくお願いします。
 エクセルはexcel2003だと思われます。


 B2セル=IF(OR(COUNTIF(A2,0),COUNTIF(A2,100),COUNTIF(A2,200),COUNTIF($A$2:A2,A2)>1),0,1)
 B12セル=SUM(C2:C11)
 といった数式で計算できそうです。

 作業列(B列)を使わないとすると、以下のような計算でしょうか・・・(Hatch)
Sub test()
Dim x
Dim i As Long, j As Long
Dim a As Long, ans As Long
x = Range("A2:A11").Value
    For i = 1 To UBound(x)
        a = 0
        If x(i, 1) = 0 Or x(i, 1) = 100 Or x(i, 1) = 200 Then
            a = 0
        Else
            For j = 1 To i
                If x(i, 1) = x(j, 1) Then a = a + 1
            Next j
            If a <> 1 Then a = 0
        End If
        If a = 1 Then ans = ans + 1
    Next i
    Range("B12").Value = ans
End Sub

 > どのように関数を組んだらいいのかさっぱりわかりませんので、どなたか教えていただきたいです
 「さっぱりわからない」という言葉は回答者側にはいい印象を与えない表現ですので
 使用しないほうがいいと思います。
 > きっとCOUNTやCOUNTIFを使うとおもうのですが…。 
 実際はある程度はわかっていますよね?

 例外がありそうではありますが たとえば
 B1
 =IF(OR(A1=0,A1=100,A1=200,COUNTIF($A$1:A1,A1)>1),0,1)
 フィルハンドルで下にコピー

 とりあえずサンプルデータの場合なら可能です。

 (えくせる青年)2010.1/10 21:49


Hatch様、えくせる青年様、ご返答ありがとうございました。
 質問の仕方についても的確なご指導ありがとうございます。
 ただ、「COUNTやCOUNTIFを使うとおもうのですが」といのは、なんとなくこの関数を使用して数式を組むのではないかという私の勝手な推測でしたので、お力添えをいただいた限りです。
 毎月発生するデータなので、有効に活用させていただきます。
 ありがとうございました。(きーちゃん)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.