[[20140912134609]] 『エクセルでのCPU使用率について』(ゆづき) ページの最後に飛ぶ

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

 

『エクセルでのCPU使用率について』(ゆづき)

現在下記スペックのPCを利用しています。

OS:win7 pro 64bit
CPU:i7-4770 8コア 3.4Ghz
メモリ:8G
グラボ:Quadro K600
HDD:500GB
Office:2013 32bit

32万行の元データがあり、そこから重複削除したリスト(31万行)にCountIFを
組むとCPUが100%になり、その後応答なしとなります。(116MB)
すぐに結果が出ないとおかしい!とは思いませんが、
PCのスペックが前のPCに比べ、断然よくなっているはずなので、
少しは良いのかな?と思いきや、フリーズしてしまう始末。
(以前はCore2でメモリ3G、HDD500GB、グラボ無し、2007 32bit)

もうエクセルの領域を超えているのか、PCのスペックがまだ低いのか・・・
はたまたOfficeを64bitにすればいいのかご意見頂けると幸いです。

(結果にどのぐらいの時間を要すればいいのか、基準がわからないので、
せっかちになっているだけかもしれませんが・・・)

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 「フリーズして」とはいっていますが、待てば結果が出るのではないでしょうか。
 まず現状、遅いというのは何秒ぐらいかかっているのでしょうか。

 Office 64 bit にすれば早くはなると思いますが10分かかっているのが数秒で、
 というような劇的な変化はありません。

 PC のスペックとしてはこれ以上のものを使用しても、さほど変わらないと思うので、
 数式の運用を考えたほうが良いと思いますが、まずはその31万行に適用した式を
 提示してみてはどうでしょうか。

 COUNTIF といっても、その中で何をやっているかによっても処理時間は変わってくるかと思います。

(Mook) 2014/09/12(金) 14:31


Mook様

返信ありがとうございます。
結果がどのぐらいで出るのか一度検証してみたいと思います。
重複しているデータが32万行あるデータのうち319件あるようなのですが、
それを特定したかった為、CountIfを運用しております。
他に方法があればそれも試してみたいと思います。
(ゆづき) 2014/09/12(金) 14:59


 32万行のデータをcountifで計算するのは難しいと思いますね。
 似たようなスペックのPCで数万行でもフリーズしたことが有りますし。

 それと、(ゆづき)さんの式がどのようなものかわかりませんが、
 行を丸ごと指定する、countif(a:a,a1)のような書き方もおすすめしませんね。
 きちんと、countif(a1:a10000,a1)のように範囲を指定する癖をつけたほうがいいです。
 とはいっても、32万行では範囲指定どうこうの問題では無いですが。

 どうしてもcountifで、とのことなら、フリーズしない範囲(データ数)を見つけて
 小分けしてデータ更新する。
 更新しないであろう範囲は値に固定する。
 などでしょうか。

(jun53) 2014/09/12(金) 15:00


30万件は、Excelが数式で処理するには多すぎです。VBAで重複を探す処理を書いた方が速そうですよ。
(ベストな案は、データベースにインポートして、カウント集計すること)
(???) 2014/09/12(金) 15:05

 どっかでみたけど、データが多い場合、配列を使う数式はなるべくテーブルにして集計して
 くださいってありませんでしたっけ?
 特に2013から仕様が変わった??

 どちらにしろ30万は多すぎるので、そのスペックを買う余裕があるなら別のデータベース
 ソフト購入したほうがいいと思います。

(稲葉) 2014/09/12(金) 15:12


コメント返信:

[ 一覧(最新更新順) ]


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