
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 重複しているか否かをソートせずに判断する方法ありますか? 2 2022/07/06 21:16
- Excel(エクセル) エクセルでフィルタ後の列の重複を回避したい 6 2022/10/13 12:50
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Excel(エクセル) Excelでの複数条件のカウントについて 1 2022/09/25 07:40
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- その他(Microsoft Office) SUMIFとCOUNTIFの違いについて 4 2022/09/29 14:13
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
このQ&Aを見た人はこんなQ&Aも見ています
-
【Excel】 SUMPRODUCT関数の高速化
Excel(エクセル)
-
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
-
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
-
-
4
多量のSUMIF式を軽くしたい
Access(アクセス)
-
5
SUMIFに変わる(代用)数式を教えてください
Windows 7
-
6
EXCELで2つの数値のうち大きい方を採択する数式
Excel(エクセル)
-
7
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
8
エクセルでアルファベットか数値の判定をしたいのですが
Excel(エクセル)
-
9
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
10
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
11
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
12
特定のシートのみ再計算させない方法は?
Excel(エクセル)
-
13
Excel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合
Access(アクセス)
-
14
括弧があるとHYPERLINKで飛べない?
Excel(エクセル)
-
15
エクセル フィルタ 数値のみ抽出したい
Excel(エクセル)
-
16
エクセルファイルのシート毎の容量
Excel(エクセル)
-
17
Excelで、条件と一致する最後のセルを検索したい
Excel(エクセル)
-
18
DoEventsがやはり分からない
Visual Basic(VBA)
-
19
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
20
INDIRECT関数の代替方法は?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報