こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数条件で、重複しないデータのカウント

以下のようなシートがあります(sheet1)。
数は20万件ほどあります。

場所 日付 種類 名前 ランク
            鈴木  1
            鈴木  1
            鈴木  1
            山本  1
            田中  2
            田中  2
            田中  3
            伊藤  3

この中で、ランクの数を数えたいと思います。
上記表でいえば、ランク1は2件、ランク2は1件という具合です。

名前での重複者を数式で検出して(countif)処理しようと思いましたが
データの件数が多すぎるため、フリーズしてしまいます。
別シート(sheet2)にデータ抽出をしようと思い、マクロを触っていたのですが
うまく行きません。
件数的に、マクロでないと処理は難しいかと思うのですが
ご教授いただけませんでしょうか。
なお、私が組んでみたマクロは下記の通りです。
よろしくお願い申し上げます。

なお、上記例で試した際に
ランク3を1件とカウントする場合と、2件とカウントする場合
指定の違いが分かれば幸いに存じます。

Sub データ抽出()
Dim myRow As Variant
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Worksheets1
Set ws2 = Worksheets2
myRow = ws1.Range("D" & Rows.Count).End(xlUp).Row

ws2.Range("A:E").ClearContents

ws1.Range("A1:E" & myRow).AdvancedFilter _
Action:=xlFilterCopy, _
      criteriarange:=     ←ここの組み方がわからず…。
copytorange:=ws2.Range("A1"), unique:=True

End Sub

投稿日時 - 2013-02-06 13:29:25

QNo.7930962

すぐに回答ほしいです

質問者が選んだベストアンサー

>数は20万件ほどあります。

ということでエクセル2007以降では、データタブにある「重複の削除」で一発で出来ます。
必要に応じてデータを複写等してから作業してください。
件数が必要でしたら、その後に行数を数えます。

投稿日時 - 2013-02-06 13:47:34

補足

早々にご返答ありがとうございました。

一度、ご指摘いただいた「重複の削除」を利用したことがあったのに
全く思いつきませんでした…。

今回ご教授いただいた中で、項目の選択ができることも学べ、処理も無事できました。
ありがとうございます。

よって、時間差はありましたが、ベストアンサーにさせていただきます。
本当にありがとうございました。

投稿日時 - 2013-02-06 15:34:18

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

20万件のデータが再現できないので、的確かどうかは断定出来ませんが

フィルタオプションで【重複するレコードは無視する】にチェックすることで抽出出来ませんか?

投稿日時 - 2013-02-06 13:41:31

補足

早々のご返答ありがとうございます。

条件指定範囲がうまく思いつかず…申し訳ありません。

投稿日時 - 2013-02-06 15:32:47

あなたにオススメの質問