• ベストアンサー

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

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

  • ベストアンサー
  • haccyan
  • ベストアンサー率43% (27/62)
回答No.3

こんばんは。 かなり邪道で、本来の使い方じゃなくて良いなら、 sheetを列の代わりと考えて、1枚のsheet全体を行とするなら、 65,536 行 × 256 列 = 16777216 となり、1670万行に及ぶデータを扱うことができます。 後は、このデータを★《串刺し計算》★してみてください。 いちいち、別のシートを参照した式を書かないといけないのと、 データが途中から隣の列に移るのがわかりにくいですが、 そもそも、300万行オーバーなんて巨大なデータを扱うなら、 こんな掟破りな方法でもやってみてもいいんじゃないでしょうか。 sheet枚数の最大値は、「使用可能メモリに依存」だそうです。 ところで、計算にかなり時間がかかるか、途中で固まるとか、 不具合が出ても、あしからず。

chitose_houjo
質問者

お礼

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

その他の回答 (2)

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

エクセルにオラクルなどのSQLを連携させる。 MySQLやPostgreSQLは無料DBです。 でもエクセルだと全行表示できませんね。

chitose_houjo
質問者

お礼

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

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

だいたい、300万行のデータをExcelのワークシートで(仮にExcelではなくても)扱うということ自体が、無理ですから、それは、Excelのワークシートという枠を外して考えるしかありません。Accessに入るかもしれません。 もちろん、どうしてもExcelのワークシートに出したいというなら、別ですが。 元のデータのフォーマットが書いてありませんが、だいたい、Textベースでしょうから、後は、配列データにするか、行だけを抽出するかして、VBA(VB)などで計算して、そのままワークシートに出さずに、テキストに出力すればよいのではありませんか?

chitose_houjo
質問者

お礼

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

関連するQ&A