
1行目が項目、
2行目以降にデータが入っています。
合計30万行位あり、B列の重複数をカウントしたいのですが、とても時間がかかります。
数式は、
=countif(B:B,B2)
で、重複してる行全てに同じ数字を入れる必要があります。
(昇順にして上から1ずつ増やしていくカウント方式では駄目。)
同じデータが6個ある場合は、6行とも”6”が入っている必要あり。)
行った工夫としては
=countif($B1:$B300000,B2)
しかし、カウントする列が3列もあるので大変です。
もっと早く結果を出す方法は無いでしょうか?
VBAでも構わないのですが、、、
A 回答 (18件中11~18件)
- 最新から表示
- 回答順に表示
No.7
- 回答日時:
(´・ω・`)
だから、応用にしようぜ
D列に重複データに連番を入れる数式を入れた。
でもってD列に対してオートフィルタで ”1” のデータを表示するようにした。
一発だろ?

No.6
- 回答日時:
説明が足らずすみません
こんな感じです
①メインシートのB1~B300000をSheet2にコピペ
②Sheet2のコピペ内容の重複を削除
③②でユニークになった内容をメインシートのC列にコピペ
④D列にCountIfの数式を埋め込む
参考:=CountIF($B:$B,$C2)

No.5
- 回答日時:
「30万行位」を図示する馬鹿はいないけど、例として
“20行くらい”を例示したのが添付図です。
♪黄色いサクランボ♪ならぬ“黄色い矢印”で過程を示しましたが、
左端図を最終的に右端図にすることを希望しておられますか?

図示していただいた方法の流れがイマイチ理解できずすみません。。
しかし、左端図の結果を得たいだけです。
図の赤枠に示して頂いた「=countif(B:B,B2)」の結果を得たいだけです。
現在の方法は、
・一度B列でソートする
・C2に「=if(B1=B2,C1+1,1」を入れて下方にコピー
→すると重複グループがカウントされて一番下がカウント数となる
・B列C列を作業用に別シートに値貼付け
・重複数を降順にソートして、B2に「=vlookup(A2,別シート!A:B,2,false)」で最大値のみを入れ込み直す。
と考えています。結果的に大分早く処理完了します。
上記作業をB列、F列、J列の値で同様の作業を行う事になります。
もっと良い案があれば助かります。
No.4
- 回答日時:
ん?
「重複しているセルの数」だけを数えるってことで良いんですよね?
どのデータがどれだけ重複しているかなんて個別に考えなくていいんですよね?
・・・本題・・・
普通は、
=countif(B:B,B2)
ではなく
=countif(B$2:B2,B2)
と、B2セルに入力して、
最終行までB2セルを複製したうえで、
最終行までの中で ”1” が返ってくる数を数えることで、
「重複しない数」
を調べることができるのですが……。
Excelの最終行(1,048,576行)まで検査するからおかしなことになる。
B列のセルを選択して、
Ctrl+↓
で入力されている最終行までいっきにジャンプできるので、その行の数式を入れる列のセルを選択後に
Shift+Ctrl+↑
でB3セルまでの範囲を選択し、
その後に
Shift+↑
でB2セルを含んだ範囲を選択、
あとは
Ctrl+D
でセルを複製すれば終わる。
あとはデータが入力されている行の数から ”1” が返ってくるセルの数を引けば良い。
別のセルでCOUNT関数を使って ”1” の数を数えるんだ。
キーボードショートカットを使えばこんなのが3列あっても1分もあればできてしまう。
・・・
これは重複しているデータに連番を付けるときに使われるテクニックです。
”1” が返るB列の値に対する最大値を求めても良いんですけど煩雑な考え方になり面倒なので
前置きで条件を絞って、引き算することを薦めています。
……まあ、自分が否定したことをやりたいのだろうと邪推してますけど……
C列にこの数式を入力したら、D列に
=countif(B:B,B2)
で、C列に対してオートフィルタをかけて ”1” の行だけ表示。
そして、D列の値を読めば良い。
都度、値を読み取る必要はありますが、質問者さんレベルであればこの程度にしておかないと
【誤った使い方で違うデータを導き出してしまったとしても気づかない】
と思うんです。
データ個別に重複数をカウントしたいです。
例を挙げると
B列、C列を以下の様な結果を得たいのです。
----------
鈴木、6
佐藤、2
阿部、3
田中、2
鈴木、6
鈴木、6
井出、1
阿部、3
木下、1
鈴木、6
佐藤、2
田中、2
鈴木、6
阿部、3
鈴木、6
No.2
- 回答日時:
私が回答できるわけではありませんが、
添付図のように
B列に3が3件、4が2件ある場合、どこに、どのような結果を表示されたいのでしょうか。
「カウントする列が3列もある」ということは、ほかにも、チェックしたい列があるということでしょうか?
もし、あるとして、その場合は、その列内での重複数をカウントするのですか、それとも、
B列の内容も含めて、重複数をカウントするのですか。

No.1
- 回答日時:
速くなるかどうかはやってみないことにはわかりませんが、
ADOでアタッチして、SQLで処理してみるのが良いかもしれません。
30万行というのは、エクセルで処理するサイズではないと思います。
アクセスなどのデータベースも考慮すべきだと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel】 SUMPRODUCT関数の高速化
Excel(エクセル)
-
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
-
多量のSUMIF式を軽くしたい
Access(アクセス)
-
-
4
SUMIFに変わる(代用)数式を教えてください
Windows 7
-
5
エクセルでアルファベットか数値の判定をしたいのですが
Excel(エクセル)
-
6
Excel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合
Access(アクセス)
-
7
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
8
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
-
9
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
10
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
11
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
12
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
13
INDIRECT関数の代替方法は?
Excel(エクセル)
-
14
ExcelのINDEXとMATCH関数でスピル機能?が邪魔をする
Excel(エクセル)
-
15
エクセルで空白セルを含む列の最終行の値を取得する式を教えてください
Excel(エクセル)
-
16
特定のシートのみ再計算させない方法は?
Excel(エクセル)
-
17
Excelの条件付き書式設定の太い罫線
Excel(エクセル)
-
18
括弧があるとHYPERLINKで飛べない?
Excel(エクセル)
-
19
エクセルを共有するとPCによって表示が異なるのはなぜでしょう。。
その他(Microsoft Office)
-
20
Excel2010のCOUNTIF関数で誤動作
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の条件に合う行番号を取得...
-
Excelで2行単位のソートの出来...
-
エクセルで日付から日にちを削...
-
excel:別シートの値を飛び飛び...
-
VBA 数式を最終行までコピー
-
エクセルで1列に500行並んだデ...
-
Excelで2つのデータの突合せを...
-
Countifよりも早く重複数をカウ...
-
EXCELでsheet1のデータをsheet2...
-
EXCELでの重複データカウント方...
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
お肉の下のシートを煮込んでし...
-
エクセルの曜日表示が正しく表...
-
EXCELで○ヶ月を○年○ヶ月に変換...
-
Excelでセルに入力されたカラー...
-
Excelの入力規則で2列表示したい
-
エクセル セルに文字を入力した...
-
excel入力セルをクリックしただ...
-
Excelで社歴管理をしており4年...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで日付から日にちを削...
-
Excelで2行単位のソートの出来...
-
複数の条件に合う行番号を取得...
-
エクセルで1列に500行並んだデ...
-
Countifよりも早く重複数をカウ...
-
excel:別シートの値を飛び飛び...
-
エクセルで、重複データを除外...
-
Excelの30個ずつの平均値の出し方
-
不要な行を消したい
-
VBA 数式を最終行までコピー
-
【エクセル】1列内に複数ある同...
-
EXCELでsheet1のデータをsheet2...
-
【VBA】A列にある連続したデー...
-
重複するデータの一部だけを抽...
-
エクセルで横並びの複数データ...
-
Excelで社員の本名をニックネー...
-
エクセルVBA C列に特定の文字列...
-
エクセル2016にて、行挿入&コピ...
-
本日の日付を超えているものを...
-
エクセルの集計方法について
おすすめ情報