ADVERTISEMENT

【Excel】データモデル更新でメモリ不足になる時の列削減と64bit版確認

【Excel】データモデル更新でメモリ不足になる時の列削減と64bit版確認
🛡️ 超解決

Excelのデータモデルを利用して大量データを分析していると、更新のタイミングで「メモリ不足」のエラーが表示されることがあります。特にPower PivotやPower Queryを併用している場合、列数が多くデータ件数が膨大だと、32bit版Excelではメモリ上限に達しやすいです。この記事では、メモリ不足を解消するための列削減の具体的な手順と、64bit版Excelへの切り替え確認方法を説明します。原因を正しく切り分け、適切な対処を選べるようにしましょう。

【要点】この記事で確認すること

  • 最初に見る場所: Excelのバージョン(32bitか64bitか)とメモリ使用量(タスクマネージャー)
  • 切り分けの軸: データモデル内の列数・行数 vs. Excelのビット数・搭載メモリ容量
  • 注意点: 会社PCで64bit版Excelをインストールする場合は管理者権限が必要。列削減は元データを変えずにモデル上で行う。

ADVERTISEMENT

メモリ不足が発生する原因

Excelのデータモデルは、大量のデータを圧縮してメモリ上に保持しますが、32bit版Excelではプロセスあたりのアドレス空間が2GB(拡張ありで最大3GB程度)に制限されています。Power Pivotで数十万行・数百列のテーブルを読み込むと、この上限を超えることがあります。また、1000万行を超えるようなデータでは64bit版でもメモリ不足になる可能性があります。主な原因は以下のとおりです。

  • 列数が多すぎる: 不要な列をデータモデルに含めるとメモリ消費が増えます。特に文字列の列や重複の多い列は圧縮効率が悪い場合があります。
  • データ型の不一致: 数値として扱うべき列がテキストになっていると、圧縮率が低下しメモリを多く使います。
  • リレーションシップの複雑さ: 多対多のリレーションや計算列が多いと内部処理にメモリを消費します。
  • Excelのビット数: 32bit版では使えるメモリが限られます。64bit版に変更すると大幅に改善する場合があります。
お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

まず確認すべきこと:ビット数とメモリ使用量

Excelのビット数を確認する手順

  1. Excelを起動し、[ファイル]タブをクリックします。
  2. [アカウント]をクリックし、[Excelのバージョン情報]をクリックします。
  3. 表示されたダイアログに「32ビット」または「64ビット」の表記があります。
  4. もし32bit版だった場合、64bit版への切り替えを検討します。
  5. 会社PCの場合はIT管理者に問い合わせてください。個人で変更すると他のアドインが動作しなくなる可能性があります。

メモリ使用量をタスクマネージャーで確認する手順

  1. データモデル更新中にタスクマネージャーを開きます(Ctrl+Shift+Esc)。
  2. [プロセス]タブで「Microsoft Excel」を探し、メモリ列の数値を確認します。
  3. 32bit版で使用量が1.5GBを超えている場合、メモリ不足が発生しやすくなります。
  4. 64bit版でも搭載メモリ(RAM)の80%を超えるようなら、データモデルの列削減が必要です。
  5. 会社PCの場合は管理者に相談し、必要に応じてメモリ増設を検討します。

列削減の具体的な手順

データモデルに取り込む前に、Power Queryエディターで不要な列を削除する方法が最も効果的です。元のデータソースを変更せずに、モデルに読み込む列だけを選べます。

Power Queryを使った列削減の手順

  1. [データ]タブ → [クエリと接続]をクリックし、該当クエリをダブルクリックしてPower Queryエディターを開きます。
  2. 削除したい列を選択し、右クリック → [列の削除]を選びます。またはホームタブの[列の管理]から[列の削除]をクリックします。
  3. 分析に不要な列(ID、タイムスタンプの細かい部分、集計に使わない説明列など)を削除します。
  4. 列のデータ型を適切に変更します。例えば「日付」列をテキストではなく日付型に、「金額」列を通貨または数値に設定します。
  5. 適用したら[閉じて読み込む]でモデルに反映します。このとき、既存のデータモデルを置き換えるか追記するか選択できます。

注意点として、削除した列はモデルからは消えますが、元のデータソースには影響しません。後で復元したい場合は、クエリの削除手順を元に戻してください。

ADVERTISEMENT

64bit版Excelへの切り替え判断

比較項目 32bit版 64bit版
メモリ上限 約2GB(拡張で3GB程度) 実質無制限(搭載RAMによる)
データモデルに適したデータ量 数十万行・数十列まで 数百万行・数百列まで(RAM次第)
VBA互換性 32bit用VBAがそのまま動作 一部Declare文などで修正が必要
アドイン互換性 32bitアドインが動作 64bitアドインが必要(32bitは動作不可)
インストールに管理者権限 通常不要 必要な場合が多い

64bit版に切り替えるかどうかの基準は、データモデルの規模と使用しているアドインです。もし会社で標準のExcelが32bit版であり、かつデータモデルが頻繁にメモリ不足になるなら、IT管理者に64bit版の利用許可を申請しましょう。ただし、古いアドインやVBAが多く使われている環境では、32bit版を維持したまま列削減で対応するほうが安全です。

失敗パターンと注意点

実際に起こりやすい失敗例をいくつか紹介します。

  • すべての列を削除してしまった: 必要な列まで削除すると分析ができなくなります。削除前に列名をメモするか、元のクエリをバックアップしておきましょう。
  • 計算列を増やしてしまった: 計算列はメモリを消費します。可能ならメジャー(DAX)で計算するほうがメモリ効率が良い場合があります。
  • 64bit版に変更後もメモリ不足が続く: 搭載RAM自体が少ない(4GBなど)場合は、64bit版でも不足します。その場合はPCのメモリ増設か、データ自体を分割してモデル化する必要があります。
  • 会社のポリシーで64bit版が許可されていない: 勝手にインストールするとセキュリティ違反になるため、必ず管理者に相談してください。

管理者へ確認すべき情報

IT管理者に64bit版Excelの導入やメモリ増設を依頼する際は、以下の情報を伝えるとスムーズです。

  • 現在のExcelのビット数とバージョン
  • データモデルで扱っているデータの行数・列数(概算)
  • エラーメッセージのスクリーンショット
  • 使用しているアドインの一覧(特に64bit版非対応のものがないか)
  • 搭載メモリ容量と空き容量

よくある質問

Q1. 列削減をしてもメモリ不足が解消されません。どうすればよいですか?

データ行数が多すぎる可能性があります。フィルターを使って必要な期間やカテゴリだけを読み込む、またはテーブルを分割して別々のデータモデルにすることを検討してください。Power Queryで行を絞り込むのも効果的です。

Q2. 64bit版Excelに変えたらVBAが動かなくなりました。どうすればいいですか?

32bit版で使っていたVBA内のDeclare文やPtrSafe属性が必要です。特にWindows APIを呼び出している場合、修正が必要です。まずは該当コードを確認し、必要なら「#If VBA7 Then」などの条件分岐を追加します。詳しくはマイクロソフトの公式ドキュメントを参照してください。

Q3. データモデルを共有すると、他のPCでもメモリ不足が発生しますか?

データモデルはブックに埋め込まれているため、開くPCのExcelビット数やメモリ容量に依存します。32bit版のPCでは同じエラーが出ることがあります。共有前に列削減とデータ圧縮を徹底しておきましょう。

まとめ

Excelのデータモデル更新でメモリ不足が起きた場合、最初に確認すべきはExcelのビット数と実際のメモリ使用量です。32bit版なら64bit版への変更、あるいは列削減で対応します。列削減はPower Queryで不要列を削除し、データ型を適切に設定するだけで効果が得られます。64bit版への切り替えは万能ではなく、搭載RAMやアドイン互換性を事前に確認する必要があります。これらの手順を踏めば、多くのメモリ不足問題は解決できるでしょう。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT