PR

Excelからデータベースへ移行!一元管理とシステム化【低コスト連携DBも】

Thumbnail for Excelからデータベースへ移行!一元管理とシステム化【低コスト連携DBも】
  • Excel ではなく、長期的なデータ管理に適した データベース に移行したい…」
  • 「データベースを使いたいが、費用や手間を抑えたい…」
  • 「データベースの選択肢が多すぎて、最適な移行先がわからない…」

Excel(エクセル)とデータベースを Power Query (パワークエリ)VBA で連携すれば、 低コストで本格的なデータ管理・運用を実現 できます。構築や保守管理のコストを最小限に抑えたい場合は、 SaaS型データベース の導入も有効な選択肢です。

本記事では、Excelからデータベース(DB)へ部分的に移行するための3つのルートを、コスト・難易度・必要スキル別に解説します。

Excelの限界|表計算ツールでデータ管理を続ける4つのデメリット

Excelによるデータ管理は、規模の拡大に伴って致命的な問題を引き起こすリスクがあります。以下の4つのデメリットは、Excelの「表計算ソフト」としての仕様に起因するものであり、運用の工夫だけでは完全に回避することは難しいです。

  • デメリット1. 大容量データを扱えない
  • デメリット2. 共有・多人数での同時編集に制限がある
  • デメリット3. データ整合性を強制しにくい
  • デメリット4. セキュリティ・ガバナンスの統制が限定的
 

デメリット1. 大容量データを扱えない

Excelには最大約104万行・1.6万列という仕様上限があり、これを超えるデータは保存できません。

仕様上限に達していなくても、以下の要因が重なると 動作遅延やフリーズが頻発 します。

  • 配列数式や揮発性関数(INDIRECT、OFFSETなど)による複雑な計算式
  • 過度な条件付き書式の設定
  • 大量の数式参照

データ量の増大と計算負荷が重なるほど、再計算処理がExcelの動作全体を圧迫するようになります。

 

デメリット2. 共有・多人数での同時編集に制限がある

1つのExcelファイルを複数人で同時編集する場合、ローカルPC(共有フォルダ等)上では 原則として同時編集ができません

OneDriveやSharePointを介したWeb版Excelでの共同編集機能は近年かなり安定してきています。ただし、以下の操作においてはいまだに 同期ズレや更新競合のリスク が残ります。

  • フィルタや並び替えの共有状態
  • 重いマクロ(VBA)との併用
  • 複雑なブック構造での同時アクセス
 

デメリット3. データ整合性を強制しにくい

Excelでは「データの入力規則」やPower Queryの前処理で一定の制御は可能です。しかし、データベースのようにシステムレベルで 厳格なデータ型(数値・文字列・日付など)を強制する仕組みは備わっていません

そのため列内に異なるデータ型が混在したり、 表記揺れ(「(株)の有無や空白 of 有無など)の発生リスク は、データベースに比べて高くなります。

 

デメリット4. セキュリティ・ガバナンスの統制が限定的

Excelは単一ファイルで管理されるため、 データの複製や持ち出しが容易 です。OneDrive/SharePoint等の機能でバージョン履歴や変更履歴( Microsoft 365 機能)はある程度追跡できますが、「誰が・いつ・どのレコードの何を変更したか」という詳細な監査ログを、システムとして厳格に保持・管理することは困難です。

加えて、複雑なVBAマクロや数式による 属人化・ブラックボックス化が発生しやすく作成者の退職や異動によってファイルの修正が困難になるリスクもあります。

吉峰
吉峰

小〜中規模であればExcelの適切な設計で改善・運用は可能ですが、組織やデータ規模が拡大するにつれて、これらのリスクを完全に排除することは難しくなります。

移行ルート|Excelからデータベース移行の選択肢3つ

Excelからデータベースへの移行は、組織規模・予算・自社のエンジニアリソースの有無に応じて、以下の3つのルートに分岐します。

出発点(ステップ1)は「Excel 1ブック完結」の状態です。すべてのデータ・計算・帳票が1つのブックに集約されており、属人化と先祖返りの温床となっている段階を指します。ここから、自社の状況に応じたルートを選択します。

吉峰
吉峰

各ルート内の「ステップ」はコスト・難易度順に並べたものです。必ずしも順番通りに進める必要はなく、段階を飛ばしても問題ありません。

移行ルート主な対象フェーズ(ステップ)特徴・技術スタック
ルートA:クラウド表計算ルートStep 2:1ブック同時編集 → Step 3:外部セル参照(数式連携)Excelの標準クラウド機能を活用した延命策。データ量の増大や運用の複雑化により限界を迎えた場合はルートB/Cへ再合流。
ルートB:内製(DIY)進化ルートStep 2:Excel複数ブック分離 → Step 3:SQLite / Access → Step 4:Dataverse for Teams → Step 5:サーバー型DB自社の業務ロジックやExcelのインターフェースを維持したまま、段階的にリレーショナルデータベースへ移行する。自由度が高く、中盤までは非常に低コスト。
ルートC:既製パッケージルートStep 2-A:SaaS型業務システム → Step 2-B:SaaS型ノーコードWebDB自社でのプログラム開発を伴わず、外部ベンダーの完成済みシステム基盤を活用する。業務フローの見直しが必要な場合もあるが、属人化リスクを低く抑えられる。

大人数での使用や継続的なデータ蓄積、データの正確性を重視する社内インフラの構築には、ルートBまたはルートCが有効です。ルートBはITリテラシーの高い管理者や、不具合発生時の対応体制が必要になります。非エンジニア主体の組織や、保守管理の手間を最小限にしたい場合は、ルートCが適しています。

ルートA|クラウド表計算ソフトによる延命

 

ステップ2:クラウドストレージでの1ブック同時編集

  • コスト:0円(OneDrive、SharePoint、Googleドライブの既存ライセンス範囲内)
  • 必要な技術スキル:初級(クラウドストレージへのファイル配置、共有リンク発行、アクセス権限付与の設定)
  • 実現可能なデータ処理:Webブラウザまたはデスクトップアプリを介して、同一のExcelブックに対し、複数人が同時にセルの値を閲覧・入力・更新できるようになります。
  • 発生する運用上の制限・課題:
    • 画面同期の競合:同一シート上で特定のユーザーが「オートフィルター」の抽出条件変更や「並び替え」を実行すると、ビュー設定を個別化していない限り、他の同時接続ユーザーの画面表示も強制的に同期される。入力作業を阻害する場合がある(最新のExcelでは「個人用ビュー」機能で回避可能だが、ユーザー側の操作習熟が必要)
    • マクロ(VBA)の制限:Web版ExcelではVBAコードの実行が不可能。デスクトップアプリで開くユーザーとの間で動作不整合が発生しやすい
 

ステップ3:クラウドストレージ上で複数ブック(外部数式連携)

  • コスト:0円
  • 必要な技術スキル:中級(ブック間を跨ぐ外部参照数式の構文理解、パス指定方法、XLOOKUPINDEXMATCH関数のネスト利用)
  • 実現可能なデータ処理
    • 「データ保管用ブック」と「集計・帳票出力用ブック」を物理的に分離し、データの一元管理と再利用を実現します。
  • 発生する運用上の制限・課題:
    • リンク切れ(#REF!エラー):クラウド上のデータ保管用ファイルの保存先フォルダ移動、ファイル名変更、または同期遅延により、数式内の参照パスが不一致となり、参照エラーが一斉に発生する

      • 外部参照の構文例(仕様)
      =[データ保管用ブック.xlsx]Sheet1!$A$1
      ='https://d.docs.live.net/ユーザーID/Documents/[データ保管用ブック.xlsx]Sheet1'!$A$1
      excel
    • ファイル同期と参照解決の遅延:参照元のデータ件数が増大するにつれ、ファイルを開く際の同期処理および参照解決処理に要する時間が増大する。動作の大幅な遅延やExcelの強制終了を引き起こす原因となる

ルートB|ExcelとDBを連携する内製化

 

前提知識:ExcelとDBの連携方法

ExcelとDBの連携は、「フロントエンド(操作画面)と「バックエンド(計算処理ロジック)からデータ保管庫を分離し、使用時に接続・連携する考え方が基本です。

接続方法は主に2つあります。

  • Power Query:ExcelからDB(または外部ファイル)のデータを読み取れる。ただし、Excel単体で利用する場合、DB内のデータへの直接書き込み・更新はできない
  • VBA(ADODB):ExcelからDBのデータの読み取り・書き込みの両方が可能

ADODBによる外部接続の例

ADODB (ActiveX Data Objects)を使うと、ExcelのVBAから外部データベースに接続し、 SQL文を用いてデータの追加(INSERT)や抽出(SELECT)を高速かつ直接実行 できます。

以下は、VBAからファイル型DBへ接続する実装コードの例です。

Dim cn As Object
Set cn = CreateObject("ADODB.Connection")

' 1. Access(.accdb)への接続文字列およびプロバイダ仕様
' ※UNCパス(\\Server\Share\)を用いて共有ネットワーク上の保管庫を指定
cn.Open "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=\\Server\Share\Database.accdb;"

' 2. データ挿入(INSERT文)のSQL構文定義
Dim sql As String
sql = "INSERT INTO T_Sales (ProductCode, Quantity) VALUES ('P001', 10);"

' 3. コマンドの実行(非同期処理を挟まない即時書き込み)
cn.Execute sql

' 4. コネクションの明示的クローズ(ファイルロックの即時解除)
cn.Close
Set cn = Nothing
vba

構文および処理プロセス

  • Provider指定(Microsoft.ACE.OLEDB.12.0):ACE OLEDBプロバイダを呼び出し、Access 2007以降の標準フォーマット(.accdbのデータベースエンジンを直接駆動させる仕様
  • SQL文の実行(INSERT INTO):Excelシート上にデータを展開することなく、指定したテーブル(T_Salesのフィールド(ProductCode, Quantityに対して、値を直接レコードとして追加する処理
  • 明示的なクローズ(cn.Close):SQL実行後直ちに接続を閉じることで、共有ファイルに対するロックを最小限のセッション時間(コンマ数秒単位)に留め、複数人同時アクセス時のファイル競合リスクを抑制する手順

ファイル型DBのクラウドストレージ管理には要注意

ファイル型DB(Access/SQLite)をクラウドストレージで管理するのは非推奨です。VBA(ADODB)でデータ操作すると、ファイル破損が発生しやすくなります。

Step 2およびStep 3のファイル型DBは、ファイルロックがOSレベルで制御可能な「同一拠点内のLAN」または「NAS(Network Attached Storage)の環境下で使用してください。

ファイル破損のメカニズム

SQLiteやMicrosoft Accessなどのファイル型データベースを、OneDrive・Dropbox・SharePoint等のクラウドストレージに直接配置し、複数クライアントのVBA(ADO/DAO経由)から同時に書き込みを行うと、データ破損が発生します。

クラウドストレージの同期アルゴリズム(差分同期を含む)は、データベースエンジンが求める厳格なトランザクション整合性やリアルタイムのページロック管理との相性が悪いためです。書き込みタイミングが重複した場合、競合コピーが生成されてデータが先祖返りするか、最悪の場合はデータベースのヘッダー構造が完全に破損します。

 

ステップ2:複数Excelブックの連携(データ保管の分離)

  • コスト:0円

  • 必要な技術スキル:中級〜上級(Power Queryによる外部ファイル接続・データクレンジング設定、VBAによる特定ブックへのデータ追記マクロ開発)

  • 実現可能なデータ処理入力用・集計用の「フロントエンド(Excel)と、純粋なデータ蓄積用の「バックエンド(Excel)を物理的に分離します。

    読み取り処理ではPower Queryを使い、バックエンドのデータを必要分だけ読み込んで処理します。フロントエンド自体の容量は肥大化しません。

  • 発生する運用上の制限・課題

    • ファイルロック問題:バックエンドが通常のExcelブックであるため、あるユーザーがVBA経由で書き込み処理を実行している間、ファイルがOSによって排他ロック(書き込み禁止状態)となる。他ユーザーからの同時書き込みVBA命令はエラー(実行時エラー '70': 書き込み権限がありません)となり、処理が遮断される
 

ステップ3:ファイル型DB(Access/SQLite)によるデータ保管・一元管理

  • コスト:0円(SQLite利用時)Accessの場合はMicrosoft 365の特定プラン、またはスタンドアロンライセンス代が必要
  • 必要な技術スキル:上級(SQL構文(DDL/DML)ADOによる接続管理、RDB設計論)
  • 実現可能なデータ処理(前ステップと比較したメリット)
    • 同時書き込み対応の向上:データベースエンジンがページ/行単位の排他制御(ロック)を行うため、数人規模の同時書き込み時におけるファイル全体のロックエラーが解消される(SQLiteの場合はVBA側でリトライ制御の実装を推奨)
    • データ整合性の強制:主キー(Primary Key)による重複データの排除、データ型(整数型、日付型など)の厳格な定義、外部キー制約(Foreign Key)によるリレーションシップ参照整合性の有効化により、表記揺れや不正データの混入をデータベース層で遮断できる
    • 破損耐性の向上:ACID特性(トランザクション処理)により、書き込み処理中のPC強制終了やネットワーク切断時にも自動ロールバックが働き、データベース全体の構造崩壊を防止する
  • 発生する運用上の制限・課題
    • 同時接続数が10名を超える環境や、頻繁にミリ秒単位の書き込みが発生する高負荷なトランザクション処理では、書き込みキューの衝突(ロック競合)によりパフォーマンスが低下する場合がある。規模に応じてサーバー型DBへの移行検討が必要
 

ステップ4:Dataverse for TeamsによるクラウドDB化

  • コスト:0円(Microsoft 365のTeams利用可能な既存ライセンスに含まれる)
  • 必要な技術スキル:上級(Power Appsによる入力UI開発、Power Automateによるワークフロー構築、Dataverse固有のリレーション・セキュリティ設定)
  • 実現可能なデータ処理(前ステップと比較したメリット)
    • Web共有・クロスプラットフォーム対応:社内LAN/NASの制約から脱却し、インターネット経由で拠点間共有が可能になる。スマートフォンやタブレット端末の専用アプリ(Power Apps)からのリアルタイムデータ閲覧・更新にも対応
    • 運用の自動化:データの追加・更新をトリガーに、Power AutomateでTeams通知、承認ワークフロー、自動メール送信などをノンプログラミングで連動できる
    • クラウド管理の信頼性:クラウド基盤による自動バックアップ、Microsoft Entra ID(旧Azure AD)と連動した柔軟なアクセス権限制御(ガバナンス)が適用される
  • 発生する運用上の制限・課題
    • 容量の上限値(目安):Teams環境におけるDataverseの仕様上、1つのチーム(環境)あたり「2GB」のストレージ上限が定義されている。データ行数は最大100万行程度が目安(テーブル構造に依存)これを超える場合は有償の上位版(Dataverse製品版)へのアップグレード(追加月額コスト)が必要
吉峰
吉峰

Dataverseは分類上サーバー型DBの一種ですが、ExcelやMicrosoft製品との親和性が高いため、ルートBの中間ステップとして位置づけています。

 

ステップ5:サーバー型DB構築による本格システム化

  • コスト:月額数千円〜(Azure SQL Database、AWS RDSなどのクラウドDBインスタンス利用料、ネットワークインフラ維持コスト、外部委託時の保守管理費用)
  • 必要な技術スキル:プロレベル(DBMSのインデックス最適化、ネットワークセキュリティ(ポート制御、SSL/TLS暗号化)IP制限、接続認証基盤の設計・運用)
  • 実現可能なデータ処理(前ステップと比較したメリット)
    • 高度なスケーラビリティ:容量および行数の制限が事実上撤廃される。1,000万件を超えるビッグデータや長年の履歴データに対して、インデックスチューニングによるミリ秒単位の応答速度で高速検索が可能
    • 外部連携の拡張:基幹システム(ERP)や各種WebサービスのAPI(Application Programming Interface)と直接データ連携し、夜間バッチ等によるマスターデータの完全自動同期を実現できる
  • 発生する運用上の制限・課題
    • クラウド/マネージドDBの普及により、ハードウェア保守などの運用負荷は大幅に低減されている。ただし、データベースの初期設計、脆弱性対策、インデックスの最適化、セキュリティ監視などを適切に行うには、専門のインフラ知識・スキルを持つ担当者(または外部ベンダー)による継続的な管理体制が必要

ルートC|既製パッケージによる業務標準化

 

ステップ2-A:SaaS型業務システムの導入

  • コスト:初期導入費用 + 月額ライセンス費用(利用ユーザーID数に応じたアカウント課金、またはデータ量に応じた従量課金)
  • 必要な技術スキル:業務要件定義スキル、フィット&ギャップ分析、外部ベンダーとの仕様調整・ベンダーコントロール(プログラミング開発スキルは不要)
  • 実現可能なデータ処理(前ステップと比較したメリット)
    • 即時導入と法対応の自動化:自社でデータ構造の設計やプログラム開発を行わずに、業界標準の業務プロセス(インボイス制度、電子帳簿保存法などの最新税制・法改正)に完全準拠した完成済みのシステム基盤を即座に稼働できる
    • 運用の堅牢性:SaaSベンダー側がサーバーの可用性(SLA)二重化、セキュリティ監視、自動アップデートを担保するため、自社でのインフラ保守が不要
  • 発生する運用上の制限・課題
    • 業務プロセスの見直し:パッケージの標準仕様を自社都合で柔軟に改修することは難しい。自社固有の特殊な計算ロジックや変則的な商習慣が存在する場合、大幅な業務フローの見直しが必要になることがある。独自のカスタマイズ(アドオン開発)を行う場合は、高額な追加費用が発生する
 

ステップ2-B:SaaS型ノーコードWebデータベースの導入

  • コスト:初期導入費用 + 月額アカウント料金(kintone、Airtable、ノーコードツール等のプランに基づく)
  • 必要な技術スキル:Webブラウザ上でのドラッグ&ドロップによるテーブル設計、リレーション設定、簡易な数式・プラグインの設定スキル
  • 実現可能なデータ処理(前ステップと比較したメリット)
    • 開発の自由度とスピード:プログラミング言語(コード)を使用せず、Excelの列概念に近い「フィールド」を配置するだけで、Webブラウザ上で動作する多人数同時編集・共有可能なリレーショナルデータベースを迅速に構築できる
    • 属人化リスクの解消:GUI(グラフィカルユーザーインターフェース)で構造が可視化されているため、複雑なVBAマクロのような「ブラックボックス問題」が発生しにくい。組織内でのメンテナンスの引き継ぎや仕様変更が容易になる
  • 発生する運用上の制限・課題
    • 複雑なループ処理を伴う計算、帳票ごとの細かな文字配置(セルの結合やミリ単位の印刷レイアウト制御)大規模データ間を複雑に跨ぐトランザクション処理においては、製品仕様上の制限により実装が不可能な場合がある。有料プラグインによる拡張が必要になるケースもある

まとめ|自社に最適なDB移行でデータ一元管理の実現を

本記事の要点は下記の通りです。

  • ルートA(クラウド表計算):Web版Excel/スプレッドシートを使用した延命策。コスト0円で始められるが、データ量の増加に伴い限界がある
  • ルートB(Excel+DB連携):ExcelにDBを連携し、段階的に機能を拡張する。自由度が高く、小規模であれば低コストで運用可能
  • ルートC(SaaS型システム/WebDB):SaaS型システムやWebDBを導入し、開発なしで法改正対応・属人化解消を実現する

ルートの選び方は、自社の優先事項によって決まります。自社でのインフラ保守・管理の手間をなくしたい場合は「ルートC」自社固有の業務仕様やExcelの操作感を極力維持したい場合は「ルートB」が適しています。

SaaS型のツール導入を検討する場合は、各製品の詳細仕様(料金プラン・各種制限値・自動化の拡張性)を正確に把握することが重要です。製品ごとに提供機能やコスト体系が大きく異なるため、公式のサイト・資料から最新情報を確認してください。