![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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” のデータを表示するようにした。
一発だろ?
![「Countifよりも早く重複数をカウント」の回答画像7](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/6/542206607_62c29fa044989/M.png)
No.6
- 回答日時:
説明が足らずすみません
こんな感じです
①メインシートのB1~B300000をSheet2にコピペ
②Sheet2のコピペ内容の重複を削除
③②でユニークになった内容をメインシートのC列にコピペ
④D列にCountIfの数式を埋め込む
参考:=CountIF($B:$B,$C2)
No.5
- 回答日時:
「30万行位」を図示する馬鹿はいないけど、例として
“20行くらい”を例示したのが添付図です。
♪黄色いサクランボ♪ならぬ“黄色い矢印”で過程を示しましたが、
左端図を最終的に右端図にすることを希望しておられますか?
![「Countifよりも早く重複数をカウント」の回答画像5](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/8/298588_62c290c94ce00/M.jpg)
図示していただいた方法の流れがイマイチ理解できずすみません。。
しかし、左端図の結果を得たいだけです。
図の赤枠に示して頂いた「=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列の内容も含めて、重複数をカウントするのですか。
![「Countifよりも早く重複数をカウント」の回答画像2](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/f/543026052_62c278770f4ee/M.png)
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(エクセル)
-
VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。
Excel(エクセル)
-
-
4
SUMIFに変わる(代用)数式を教えてください
Windows 7
-
5
文字列から英数字のみを抽出する関数
Excel(エクセル)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
特定のシートのみ再計算させない方法は?
Excel(エクセル)
-
8
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
9
エクセルのフィルタオプションで「ある文字列を含まない」条件は?
Excel(エクセル)
-
10
Excel MATCH関数で検索範囲内に同じ値の検索値が複数ある場合
Access(アクセス)
-
11
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
12
条件付書式で「=#N/A」に色を付けたい
Excel(エクセル)
-
13
INDIRECT関数の代替方法は?
Excel(エクセル)
-
14
エクセルVBA 配列からセルに「関数式」を一気代入したい
Visual Basic(VBA)
-
15
OFFSET関数とCOUNTIFって組み合わせはできますか? COUNTIF関数で行を新しく追加した
Excel(エクセル)
-
16
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
17
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
18
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
19
エクセル:一般的に何メガくらいの容量なら安全ですか?
PowerPoint(パワーポイント)
-
20
エクセル関数で日付かどうかの確認?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで日付から日にちを削...
-
複数の条件に合う行番号を取得...
-
エクセルで1列に500行並んだデ...
-
Excelで2行単位のソートの出来...
-
excel:別シートの値を飛び飛び...
-
エクセルで、重複データを除外...
-
Excelの30個ずつの平均値の出し方
-
Excelで2つのデータの突合せを...
-
Countifよりも早く重複数をカウ...
-
本日の日付を超えているものを...
-
【VBA】A列にある連続したデー...
-
マクロ コピー貼り付けと重複デ...
-
エクセルのマクロ Range("A1")...
-
エクセル 複数の文字列を別シ...
-
エクセルVBA C列に特定の文字列...
-
Excel 列データのランダムな並...
-
エクセルで、特定の文字を含む...
-
EXCELでの重複データカウント方...
-
エクセルデータの比較をしたい。
-
エクセル2003でマクロでマクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで1列に500行並んだデ...
-
エクセルで日付から日にちを削...
-
Excelで2つのデータの突合せを...
-
Excelで2行単位のソートの出来...
-
複数の条件に合う行番号を取得...
-
excel:別シートの値を飛び飛び...
-
エクセルで、重複データを除外...
-
Countifよりも早く重複数をカウ...
-
Excelの30個ずつの平均値の出し方
-
VBA 数式を最終行までコピー
-
エクセルVBA C列に特定の文字列...
-
エクセルで横並びの複数データ...
-
エクセル2016にて、行挿入&コピ...
-
【Excel】小計単位で並べ替えを...
-
VBA 大きなtxtテキストファ...
-
500行の中から、多い順に抽出す...
-
エクセル~空白のセルのある行...
-
エクセルで1つの会社名に対して...
-
【エクセル】1列内に複数ある同...
-
Excel VBA 空白セル以下のデー...
おすすめ情報