プロが教えるわが家の防犯対策術!

エクセルの複数のフィールドの重複のチェック方法を教えて!

下のようなテーブルで3人の顧客IDより月別のピボットテーブルをエクセルで作成すると
IDを重複してカウントしてしまいます。Aランク顧客IDは2010/1に3のカウントなのですが、顧客数は1としたい場合、CustomerIDと購買月が重複せずにカウントさせる方法や関数を教えてください。


CustomerIDランク購買月  
1017       A   2010/1
1017       A   2010/1
1017       A   2010/1
1017       A   2010/2
1017       A 2010/3
226424   A 2010/2
226424 A 2010/
2226424 A 2010/2
226424 A 2010/3
226424 A 2010/3
823622 B 2010/2
823622 B 2010/2
823622 B 2010/3
823622 B 2010/3
1205 B 2010/2

「エクセルの複数のフィールドの重複のチェッ」の質問画像

A 回答 (1件)

次のマクロご希望の計算が出来ました。

お試し下さい。
行数はfor next文のところで指定してください。現在は16としています。



Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2010/5/3 ユーザー名 :
'

'
Range("A1:C1").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A1").Select
ActiveSheet.Paste
Dim gyo1 As Integer, gyo2 As Integer, retu As Integer, endgyo As Integer, id As Variant, rnk As Variant, tuki As Variant

'InputBox (endgyo)

Worksheets("Sheet1").Activate
gyo1 = 2
id = Cells(gyo1, 1)
rnk = Cells(gyo1, 2)
tuki = Cells(gyo1, 3)
Worksheets("Sheet2").Activate
gyo2 = 2
Cells(gyo2, 1) = id
Cells(gyo2, 2) = rnk
Cells(gyo2, 3) = tuki
gyo2 = gyo2 + 1
'MsgBox (endgyo)
For gyo1 = 3 To 16
Worksheets("Sheet1").Activate
'MsgBox (id)
'MsgBox (Cells(gyo1, 1))
If Cells(gyo1, 1) = id And Cells(gyo1, 2) = rnk And Cells(gyo1, 3) = tuki Then
Else
id = Cells(gyo1, 1)
rnk = Cells(gyo1, 2)
tuki = Cells(gyo1, 3)

Worksheets("Sheet2").Activate
Cells(gyo2, 1) = id
Cells(gyo2, 2) = rnk
Cells(gyo2, 3) = tuki
gyo2 = gyo2 + 1


End If
'id = Cells(gyo1, 1)
'rnk = Cells(gyo1, 2)
'tuki = Cells(gyo1, 3)
Next


End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます!
大変参考になりました。
重複に対する考えが深まりました。
今後ともよろしくお願いします。

お礼日時:2010/05/05 21:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!