こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Microsoft Excelの限界を乗り切る方法について

今まで、ExcelのIF関数や不等号記号、MAX、MINなどを使って、セルの値の変化に応じて分析(今までは、せいぜい1万行だった)をしていたのですが、今回、300万行超えのデータを扱う事になり、Excelの限界地が65536行で、とても困っています。何か、良い方法は無いでしょうか?
何卒、ご教示、宜しくお願い致します。

A1  =44
A2  =30
A3  =97
以下、実数値が300万行ほど続きます。

B1  =IF(A2>20,A1+A2,A1+A3)
B2  =IF(A3>20,A2+A3,A2+A4)
B3  =IF(A4>20,A3+A4,A3+A5)
以下、同様に続きます。

C1  =IF(B1*A3>14000,B1,FALSE)
C2  =IF(B2*A4>14000,B2,FALSE)
C3  =IF(B3*A5>14000,B3,FALSE)
以下、同様に続きます。

実際は、D,E,F,G,H,I,Jにも様々な計算式が入っています。


実際に、作成したExcelの表です。
  A    B    C
1  44   74    FALSE
2  30   128   FALSE
3  97   131   140

投稿日時 - 2005-05-24 18:06:29

QNo.1407310

暇なときに回答ください

質問者が選んだベストアンサー

こんばんは。

かなり邪道で、本来の使い方じゃなくて良いなら、
sheetを列の代わりと考えて、1枚のsheet全体を行とするなら、

65,536 行 × 256 列 = 16777216

となり、1670万行に及ぶデータを扱うことができます。

後は、このデータを★《串刺し計算》★してみてください。

いちいち、別のシートを参照した式を書かないといけないのと、
データが途中から隣の列に移るのがわかりにくいですが、

そもそも、300万行オーバーなんて巨大なデータを扱うなら、
こんな掟破りな方法でもやってみてもいいんじゃないでしょうか。

sheet枚数の最大値は、「使用可能メモリに依存」だそうです。

ところで、計算にかなり時間がかかるか、途中で固まるとか、
不具合が出ても、あしからず。

投稿日時 - 2005-05-26 23:44:01

お礼

回答いただきありがとうございます。
串刺し計算について調べてみます。
ありがとうございました。

投稿日時 - 2005-06-02 22:03:49

ANo.3

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

エクセルにオラクルなどのSQLを連携させる。
MySQLやPostgreSQLは無料DBです。

でもエクセルだと全行表示できませんね。

投稿日時 - 2005-05-24 19:25:27

お礼

回答いただきありがとうございます。つまり、データベースソフトを用いれば解決できるという事ですね。ありがとうございました。

投稿日時 - 2005-05-26 09:30:50

ANo.1

だいたい、300万行のデータをExcelのワークシートで(仮にExcelではなくても)扱うということ自体が、無理ですから、それは、Excelのワークシートという枠を外して考えるしかありません。Accessに入るかもしれません。

もちろん、どうしてもExcelのワークシートに出したいというなら、別ですが。

元のデータのフォーマットが書いてありませんが、だいたい、Textベースでしょうから、後は、配列データにするか、行だけを抽出するかして、VBA(VB)などで計算して、そのままワークシートに出さずに、テキストに出力すればよいのではありませんか?

投稿日時 - 2005-05-24 18:47:12

お礼

回答いただきありがとうございます。
つまり、プログラムを自作でがんばると・・・
う~ん。。。ちょっと、考えてみます。

投稿日時 - 2005-05-26 09:32:31

あなたにオススメの質問