100万×100万の高速化
100万×100万=一兆
実務でたまに見かける前任者たちの処理方法です
一つずつCellを2重以上のLoopを行う処理を見かけます
Excelの行数の最大値は1,048,576
通常業務ではぎりぎりまでデータを使うことはほとんどないと思います
A列のデータ 100万行
C列のデータ 100万行
すべてfor nextでif文で一致するデータを格納するという処理を行うと
100万行あるデータをif文で一致するかを繰り返す処理を100万回行うことになります
二重Loopになり、かかる時間は1兆回なので10万回で1秒としたら
処理にかかる時間は100000000000/100000/60/60=27.7777
単純計算で時間にすると27時間45分以上 かかります
検索だけの処理のときは繰り返し処理はVBAにあるFind、関数のVlookUpを使用すると
もっと時間が短縮できます
単純計算で1秒で処理できる回数が10万回ではなく5000回だとしたら
Loopは1度、1000000/5000/60=3.333333
単純計算で3分強で終わります
Excelにある機能やメソッドを探して使うのも高速化になります
Accessを使うともっと多くのデータを使いこなせます
この記事が気に入ったらサポートをしてみませんか?