[[20210816141402]] 『3万行ほどのデータのフィルタなどが重い』(だん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『3万行ほどのデータのフィルタなどが重い』(だん)

宜しくお願い致します。

タイトル通り3万行ほどのリストデータを、
列ごとに重複は赤くしてその分を色フィルターで絞る、
を押すだけでエクセルが固まりかけてしまいます。

フィルター機能をサクッとするやり方ご存じないでしょうか?

テーブルにしてみて少し軽くなりましたがそれでも遅いです。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 もし式があるのならばコピー、値の貼り付けで式を値に変換してはどうだろうか?
(ねむねむ) 2021/08/16(月) 14:38

ねむねむ様

式は値だけにして軽くしております。
マクロというものでフィルターと同じことはできないでしょうか?
(だん) 2021/08/16(月) 14:47


 重複を赤くするのは条件付き書式で行っていますか?
 条件付き書式は重くなる原因となるので、重複の判定列を作成してその列で絞込で軽くならないでしょうか。

 マクロでフィルターをかけることはできますが、
 マクロからフィルター機能を使う、というだけなので軽くならないと思います(検証したことないのでわかりませんが)
 根本原因としてデータの重さが問題だと思うので、先にデータ軽くしませんか?
(*) 2021/08/16(月) 15:02

 7万件のデータで実施してみました。(当方Excel2010)

 条件付き書式の[重複する値]を1列に設定するだけで、
 めちゃくちゃ動作が鈍くなりますね。(重複の量にも寄ると思いますが)
 該当列のオートフィルタ矢印を押すだけで10秒弱は待たされます。

(白茶) 2021/08/16(月) 15:33


 30,000*30,000 = 900,000,000ですからねぇ。時間掛かってもしょうがないです。

 アイデアだけですが・・
 30,000*(2+アルファ) くらいで出来そうな気がする。

 30,000の配列の入れ物を作る
 重複があるかどうか、Dicrtionryオブジェクトを使って判定する。
 重複がある行番号に対応する配列の位置に「1」でも書き込む(※)
 最後に配列を表の右横列に書き出す。
 書き出された列で1をフィルタで抽出する。

 (※)マクロの実装にちょっと工夫が必要。

(半平太) 2021/08/17(火) 17:28


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.