PR

Excel設計・システム化の基礎~上級【テーブル×Power Queryでデータ再利用】

Thumbnail for Excel設計・システム化の基礎~上級【テーブル×Power Queryでデータ再利用】

「一度作ったExcelなのに、翌月にはまた作り直している」
「マスタデータをコピペしており、どれが本当の情報かわからない」
「数式が入ったセルを誰かに壊され、原因究明に数時間を費やした」

Excel(エクセル)は「きれいな見た目」にこだわると、再利用できない使い捨てのファイルになりがちです。多くの場合、原因は再利用しやすい 「テーブル(構造化されたデータ)を起点にせず作成していること にあります。

この記事では Excelのテーブル設計 を基軸とした設計方法・システム化の方法について解説します。
具体的には、テーブルで「データの蓄積」を行い、Power Queryや関数などで「加工」「活用」し、
必要に応じてこれらの場所を分割することが重要です。

Excelを「ただの計算表」から「データを再利用できるシステム」へ変えるために必要なのは、「データの蓄積・加工・活用」のそれぞれについて適切な方法を知ること です。転記(コピペ)やデータ加工の自動化 が実現でき、業務効率化 につながります。

目次

比較|再利用できないExcelとできるExcelの違い

見た目重視でExcelブックを作成した場合、次のような問題がよく発生します。データの再利用を妨げる典型的なパターンです。

  • 再利用するのに手作業・複雑な関数が必要
    見た目を整えるための セル結合や単位の混在 などを使ってデータを格納すると、 データの再利用性が落ちます
    フィルタや並べ替えのようなExcelの標準機能を正常に動作させるために、手作業や複雑な関数が必要になります。

    再利用できるExcelとできないExcelの例
  • コピペによりデータが散乱
    データをブックごとにコピペ して使用していると、 どれが本当の情報なのかわからなくなります
    マスタデータの場合は特に深刻で、修正時にどのブックを直せばよいかわからない、
    修正しても古いデータを参照してしまう、という問題が起きます。

    コピペによりデータが散乱した例と一元管理した例
  • データの書き換え場所がわかりづらい
    入力欄と計算セルが混在していてどこを書き換えればよいかわかりづらいと、
    ユーザーが誤って 計算式を数値で上書き してしまい、ロジックが破壊される事故が多発します。
    ブックの作成者にとっても、パッと見で判断できなければ解析作業に時間を要することになり、無駄な工数が発生します。

    データの書き換え場所がわかりやすい例
吉峰
吉峰

「データの蓄積・加工・活用」のそれぞれについて適切な方法を知り設計すること で、作業時間の削減だけでなく、信頼性の高いシステムの構築にもつながります。

全体像|Excel管理をシステム化する設計のフレームワーク

Excelを「使い捨てのファイル」から「再利用できるシステム」に変える鍵は、データを正しく蓄積することその蓄積データを起点にブック全体を設計することにあります。

データを使う流れは「蓄積・加工・活用」の3つに分類できます。その中でも、起点となる「蓄積」を正しく設計できているかどうかが重要です。多くの人のExcelブックが使い捨てになる原因は、「見た目の良い表」や「使いやすい入力画面」を先に作ってしまうことです。

逆に、蓄積するデータを正しいテーブル設計で管理できていれば、加工・活用の自動化は容易になります。「何をどのように蓄積するか」を最初に決めることが、Excelシステム化の出発点です。このセクションでは、データの蓄積を基軸とした設計フレームワークの全体像を解説します。

 

データの利用は「蓄積・加工・活用」の3ステップ

データの利用は「蓄積・加工・活用」の3ステップ

一般的に、データを利用する流れは、 「蓄積・加工・活用」 の3つに集約できます。

  1. データの蓄積(入力・保存)Excelテーブル

    情報システムにおける「データベース」の役割を担う。
    再利用性を確保するために、一貫性のあるテーブル形式を維持し、データを構造化することが重要。

  2. データの加工(計算・変換)Power Query・関数

    蓄積されたテーブルをソースとして抽出し、目的に応じた整形を行う「処理エンジン」として機能する。
    データをテーブル化することでPower Queryによる自動認識が可能となり、更新操作のみで最新状態を反映できる。

  3. データの活用(表示・出力)レポート・UIなど

    加工済みのデータを、利用者が意思決定や確認を行うために最適化された「UI(表示画面)として出力する。

データを 加工活用 するためには、まず適切なデータの 蓄積 方法(テーブル設計)を押さえる必要があります。データの蓄積を起点にブック全体を設計すること が、データを再利用できるシステム作りの鍵です。

「DATAとVIEWの分離」「三層モデル」と関連

「データの蓄積・加工・活用」というステップは、

に近い考え方です。

ただし、Excelにおいては 必ずしもこれらを物理的な記述場所や管理場所として分離する必要はない と筆者は考えます。
データを再利用しやすい形で「蓄積」できてさえいれば、「加工・活用」する場所が同一のテーブルやシート、ブックであっても問題ありません。
蓄積したデータをそのままの状態では「活用」しにくい場合にのみ、必要に応じて別の場所に切り離して「加工・活用」を行えば十分です。

 

なぜ「データの蓄積(テーブル設計)が基軸なのか

「データの 蓄積を起点にブックを設計すべき最大の理由は、 データの再利用性 を守るためです。蓄積するデータを、再利用しやすいテーブルとして整理することで、以下のメリットが得られます。

  • 「加工」の自動化が容易になる: データがきれいにテーブルにまとめられていれば、複雑なデータクレンジングや統合を必要とせず、「データの加工」を簡単に自動化できます。
    テーブル単位の加工はPower Queryで加工しやすいです。
  • 「活用」のバリエーションが広がる: 1つの蓄積データは複数の用途に使い回せます。
    データを1か所修正するだけで、「請求書」「月次推移表」「グラフ」など、すべてのデータの利用先に一括で変更を反映できます。
  • データの信頼性が担保しやすい: 計算ロジックを蓄積データから切り離しやすく、入力場所を明確にできます。
    不意の操作ミスによるデータ消失リスクを下げられます。
蓄積したデータをさまざまな用途に加工・活用

例)売上データと請求書の場合

  • 蓄積: Excelテーブルで売上明細データを管理
  • 加工: テーブルを参照し、Power Queryで顧客別に集計・整形
  • 活用: 請求書、月次レポート、売上推移グラフなど用途に合わせて出力

逆に、人間にとって見やすいブックを優先して「 加工・活用を先に考えると、データは再利用しづらく組み込んだロジックは管理しづらくなり、使い捨てのブックになりがちです。

 

テーブル設計を基軸にした設計:向いているケースと不向きなケース

必ずしもテーブルを活用した「データの蓄積」を基準としたブック設計が良いとは限りません。向いているケースと向かないケースは下記の通りです。

向いているケース

  • データを継続的に蓄積する業務:
    日々の売上やログなど、時間の経過とともに増大する情報を管理する場合
  • 繰り返し使う帳票・レポート:
    月次報告書のように、同じ体裁でデータを更新し続ける必要があるもの
  • 複数人で扱うExcel:
    操作ミスによる数式破壊を防ぎ、誰でも同じ結果を得られる堅牢性が求められる場合

向いていないケース

  • 一度きりの単発作業:
    設計に時間をかけるよりも、その場で直接作成した方が早い小規模なタスク
  • 数十行レベルの簡易データ:
    役割の整理による管理コストが、運用のメリットを上回る場合
吉峰
吉峰

「データの蓄積」と「加工・活用」の場所を分離すると、閲覧しながら編集がやりづらくなり、行ったり来たりが発生するデメリットが生じます。使い捨て前提であれば、無理にデータの蓄積(テーブル設計)を意識する必要はありません。

データの蓄積|Excelテーブル設計の基本と再利用できるデータ構造

データの 蓄積 方法(テーブル設計)について説明します。基本はExcelのテーブル機能( Excelテーブルを使うことです。データベース設計の考え方を取り入れ、複数のExcelテーブルを組み合わせて利用すると、より高度なデータ管理が可能になります。

Excelを「再利用できるシステム(データベース)として機能させるためには、以下のルールを守ってデータを蓄積することが重要です。

  • 構造化データの要件を満たす:「セル結合をしない」「1行1件」など、機械が処理しやすい入力ルールを守る。
  • 整然データ(Tidy Data)の原則に従う:再利用やピボットテーブルでの集計が容易な構造(1セル1データ、変数は列、観測は行)にする。
  • マスタとトランザクションを分離する:売上(イベント)と商品情報(属性)を別テーブルに分け、スタースキーマの形で連携させる。

これらの「テーブルの正しい作成手順」や「複数テーブルを連携する疑似RDBの構築」など、Excelをデータベースとして扱うための具体的な設計手法については、以下の記事で体系的に解説しています。

本記事ではこれ以降、蓄積したデータを活用するための「配置場所」や、関数・Power Queryを用いた「データの加工」について解説を進めます。

 

テーブルの配置場所:同一シート・別シート・別ブック

複数のテーブルがある場合や、「データの蓄積」と「加工・活用」の場所が分割される場合は、テーブルの 配置場所 も考慮する必要があります。配置場所の選択肢は、 同一シート・別シート・別ブック の3パターンです。

使い分けの指針

  • 同一シート: テーブルサイズが小さく、データ数がほとんど増えない場合
  • 別シート: データ数が増える可能性が高い場合
  • 別ブック: マスタデータなど、他のブックからも再利用する可能性が高い場合

データの加工|Excelデータを使い回すための自動化テクニック

テーブルとして正しく蓄積されたデータは、加工の自動化が格段に楽になります。

「加工」の目的は、蓄積データをそのまま使うのではなく、目的に合った形に 整形・集計 することです。加工の手法を正しく選べば、毎月手作業でやっていた集計・転記・整形のほとんどを ボタン1つで済ませられます

この章では 関数・Power Query・Power Pivot の使い分けを中心に、データ加工を自動化するための基本テクニックを解説します。

  • 手法の選択 :関数・Power Query・Power Pivotの使い分け
  • データの横結合 :リレーション・紐づけ・関連付け
  • データの縦結合 :積み上げ・ユニオン
  • 応用 :【データ活用の基本の型】外部ブックからの転記/データベース利用の基礎
 

手法の選択:関数・Power Query・Power Pivotの使い分け

データの加工手法には以下の2つ(+α)があります。

  • 関数(数式) セル単位でデータ加工を行う。即座に計算・表示するリアルタイム性に優れる。
  • Power Query: テーブル単位でデータ加工を行う。外部データの取り込みや大量データ処理に強い。
  • (Power Pivot) ピボットテーブル向け。大量データの扱い、複数のテーブル間の関係づけ(リレーションシップ)を構築できる

基本的には関数(数式)を使用し、以下の場合にはPower Queryを使うのが有効です。

【Power Queryの使いどころ】

  • データが外部にある : 参照するデータが外部ファイルや複数ブックにまたがる場合
  • 処理が複雑: 関数では記述が困難・複雑になる多ステップの加工やクレンジングが必要な場合
  • データ量が膨大: 数万件を超えるような大量データの処理を行う場合
  • 出力先サイズを自動調整 : 加工後の結果出力先で、行・列の挿入を自動で行いたい場合
 

データの横結合:リレーション・紐づけ・関連付け

横結合のイメージ

複数のテーブルのデータを横方向に結合・関連付けする方法は以下の3つです。

  • XLOOKUP / VLOOKUP / INDEX-MATCH 関数:単一の参照向け(リアルタイム更新重視)
  • Power Query マージ:2つのテーブルの結合向け
  • Power Pivot リレーションシップ:複数テーブルの結合向け(大量データ向け)

それぞれの具体的な結合イメージや解説については、以下の記事の「連携方法」のセクションを参照してください。

 

データの縦結合:積み上げ・ユニオン

縦結合のイメージ

複数のテーブルのデータを縦に結合する方法は以下の2つです。

  • VSTACK関数:同一ブック内の複数シートの結合、リアルタイムView用

    VSTACK関数による縦結合
  • Power Query 結合複数の外部ブックの統合内部・外部テーブルの結合

    Power Query 結合による縦結合
 

応用:【データ活用の基本の型】外部マスタからの転記/データベース利用の基礎

データ活用の基本は 「1つのデータを使い回すこと」 です。データを 一元管理 でき、 データベース として機能します。

下記の通りにPower Queryと関数を使うと実装方法のベースが作れます。

  1. マスタデータを1つのブックに切り出す(データの 蓄積
  2. マスタデータをPower Queryで外部参照し、ブック内にテーブルとして配置する。
    • ※ この段階でPower Queryを使ったデータ 加工 をしても良い。
  3. 関数やPower Queryを使い、ブック内でデータを 加工 し、活用 する。
吉峰
吉峰

外部ブックの参照にはPower Queryを使い、同一ブック内での参照には関数とPower Queryを使い分けるのが良いでしょう。

Power Queryと関数を使ったデータ活用の基本の型

マスタテーブルの作成から、外部ブックへの切り出し、活用方法については、下記記事にまとめています。

データの活用|データの表示方法とUI・レポートの作成方法

データの 活用 とは、 蓄積 したデータを 加工 し、ユーザーが操作・判断するためのUIやレポートなどを作ること です。Excelでデータを活用する方法は、主に以下の3つのパターンに分けられます。

  • ① 出力 :データをそのまま使う
  • ② 入力支援 :ミスを防ぐ・操作させる
  • ③ 可視化・分析 :判断させる
 

① 出力:数式やPower Queryでデータをそのまま使う

加工 したデータをそのまま出力する方法には、下記があります。

  • セル値 : 数式(関数)による出力。単一の計算結果や抽出した値を特定のセルに配置して表示する。
  • テーブル(リスト) : Power Queryによる出力。抽出条件に合致する複数のデータを一覧形式(Excelテーブル形式)で表示する。並び替えやフィルタ機能がすぐ使える。
セル値とテーブル(リスト)による出力
吉峰
吉峰

これらは再度、「データの 加工に利用できます。

応用例:書類フォーマット

フォーマット・枠組みとなるシートを作成し、数式(関数)やPower Queryで書き換え箇所にデータを流し込むことで、請求書や納品書などの定型書類が簡単に作成できます。

書類フォーマットの例

応用例:縦型のリスト・カード型表示

Excelテーブルでは、各項目を横方向にしか並べられません。項目数が増えると横スクロールが必要になり、見づらいことがあります。その場合、項目を縦方向に並べる カード型表示 が見やすいかもしれません。

テーブルの中から特定の項目だけを抽出し、カード型表示をする方法として、以下のように関数を使う方法があります。

【XLOOKUP使用:表示する項目を個別に指定】

=XLOOKUP($C$2, テーブル1[ID], テーブル1[商品名]) 
=XLOOKUP($C$2, テーブル1[ID], テーブル1[カテゴリ])
=XLOOKUP($C$2, テーブル1[ID], テーブル1[ブランド])
=XLOOKUP($C$2, テーブル1[ID], テーブル1[発売日]) 
excel

表示項目をセル値から指定する場合

INDIRECT関数を併用すると、セル値で表示項目を指定できます。

=XLOOKUP($C$2, テーブル1[ID], INDIRECT( "テーブル1["&$B4&"]" ))
excel
XLOOKUP関数によるカード型表示

【FILTER + TRANSPOSE使用:条件に合う行全体を抽出し、縦横を入れ替え】

=TRANSPOSE(FILTER(テーブル1, テーブル1[ID]=$C$2))
excel
FILTER + TRANSPOSE関数によるカード型表示

フォーム機能

Excelには、テーブルの1フィールドごとの内容を縦に並べて表示・編集できるフォーム機能があります。データを追加することもでき、関数により自動で記入される項目は書き換えが防止されているというメリットがあります。

フォーム機能によるカード型表示

オプションリボンのユーザー設定から、任意のタブにフォームを追加することで利用可能

 

② 入力支援:ドロップダウンや書式でミスを防ぐ

以下の方法を用いると、「正しく入力させる」「選ばせる」用途で、データの質・整合性の向上に役立ちます。

データの入力規則(ドロップダウンメニュー)と条件付き書式
 

③ 可視化・分析:ピボットテーブルとグラフで判断を促す

以下の方法を用いると、「集計して意思決定に使う」用途で、分析・傾向把握などに活用できます。

  • ピボットテーブル: データをクロス集計し、多角的な分析を動的に行う
    • ※ 通常のセル範囲/テーブルやPower Query/Power Pivotを使ったデータモデル経由でも作成可能
  • グラフ: 数値データを視覚化し、傾向や異常値を一目で判断できるようにする
    • ※ ピボットグラフでなく通常のグラフの場合は、一度セルやテーブルを経由する必要あり
ピボットテーブルとグラフによる可視化・分析
吉峰
吉峰

ピボットテーブルは「その場で集計・加工を動的に行えるテーブル」「複数テーブルを結合したテーブル」「レイアウトを変えられるテーブル」として機能します。

便利機能|Excel管理をシステムとして継続させる実践テクニック

Excelブックをシステムとして運用するために役立つ機能・テクニックとして、以下の4つを紹介します。

  • 誤操作防止 :ロジックが破壊されないための誤操作防止
  • 作業レイアウトの設定 :頻繁に行き来する作業を効率化する工夫
  • パフォーマンス最適化 :データ数が多い場合のExcelの動作遅延の改善策
 

1. 誤操作防止:保護と非表示でロジックを守る

ロジックの破壊を防ぐ、誤操作の防止に役立つ機能があります。

  • 保護・ロック : 計算式が記述されたセルやシート全体を保護し、ユーザーによる誤った上書きを防止する
  • 非表示シート : 中間計算やマスタデータ用のシートを隠し、ユーザーの混乱や誤操作を防ぐ
  • セルの非表示 : 計算過程で必要な数式などを隠し、表示画面をクリーンに保つ
 

2. 作業環境の整備:複数ウィンドウによる効率化

データの 蓄積加工・活用 を分けた場合、作業場所・視点を行ったり来たりと頻繁に往復する必要が生じ、作業効率が落ちます。

これを防ぐためには、複数ウィンドウ運用 を使い、 2つの画面を横に並べて作業するのが有効 です。
表示タブの新しいウィンドウを開く > 整列から設定できます。

 

3. パフォーマンス最適化:動作遅延を防ぐ計算設計

データ量が多い場合など、動作が遅くなった場合には、以下のような方法によってパフォーマンス最適化が図れます。

  • 関数(数式)からPower Queryに置き換え : 大量のデータに対し同じ計算処理を行う場合、関数ではなくPower Queryで処理することでパフォーマンスが向上する
  • データモデル(仮想テーブル)活用 : 大量のデータをすべてシートに展開せずメモリ上でのみ保持し、必要なときだけ計算・表示することでパフォーマンスが向上する
  • 揮発性関数を避ける : INDIRECT、OFFSET、TODAY、NOWなどの揮発性関数は、頻繁に再計算を行うため使用を避ける

まとめ|Excelは"設計"次第で再利用可能なシステムに

この記事では、Excelを「使い捨てのファイル」から「データを再利用できるシステム」変えるための設計思想と具体的な方法を解説しました。

データを使う流れは「蓄積・加工・活用」の3つに分類できます。その中で最も重要なのは、 起点となる「蓄積」を正しく設計すること です。蓄積が正しければ、加工・活用の自動化のハードルを大きく下げられます。

  • データの蓄積(Excelテーブル)
    整然データの原則に従い、構造化されたテーブルとして管理する。
    マスタとトランザクションを分離し、スタースキーマを基本とした設計が実務では現実解。
  • データの加工(関数・Power Query)
    テーブルを起点にすることで、更新操作だけで最新状態を反映できる加工の自動化が実現する。
    外部ブックの参照や大量データ処理にはPower Queryが有効。
  • データの活用(レポート・UI)
    1つの蓄積データを、請求書・月次レポート・グラフなど複数の用途で使い回せるようになる。

完璧な設計を最初から実現する必要はありません。まずは手元の1つのテーブルをExcelテーブルとして整備することから始めるだけで十分です。「蓄積を起点に設計する」という考え方を身につけることで、これまでと同じExcel業務でもデータの再利用性が増し、業務効率は大きく向上します。

吉峰
吉峰

「そもそもExcelに向いていないタスクがあるのでは?」については、下記の記事にまとめました。興味があれば、読んでみてください。