Excelへ売上データを集めたものの、どのように分析すればよいか分からない。

毎月、同じピボットテーブルとグラフを作り、前月から変わった部分を探している。

上司から「売上が減った理由を調べて」と言われても、どの商品、得意先、担当者から調べればよいか判断できない。

このような作業を、AIへ日本語で質問するだけで進められるオープンソースツールがあります。

Microsoft Researchが公開しているData Formulatorです。

Data FormulatorへCSVやExcelファイルを読み込ませ、次のように質問します。

売上が落ちた商品を探してください。

担当者別の売上をグラフにしてください。

通常より大きい注文を探してください。

管理職へ報告すべき内容をまとめてください。

AIがデータを確認し、必要な集計処理を考え、表やグラフを作成します。

単にAIが文章で回答するだけではありません。

  • 元データを表として確認する
  • 新しい計算列を作る
  • 複数の切り口で集計する
  • グラフを自動生成する
  • 別の分析へ分岐する
  • グラフの色や形式を修正する
  • 複数のグラフをレポートへまとめる
  • 画像またはPDFとして出力する

本記事では、プログラムやデータ分析の経験がない人でも再現できるように、Windowsへの導入から実際の売上分析まで順番に説明します。

さらに、売上や原価を外部AIへ送信しないためのOllama版、MariaDBへ接続する際の安全な構成、社内サーバーへ配置する方法も紹介します。

最初から実際の顧客名、売上、原価、個人情報を使わないでください。本記事で配布する架空CSVを使用し、結果を確認してから実務データへ移行してください。


目次

まずは20秒で完成イメージを見る

サンプル売上CSVを読み込み、日本語で分析内容を指定し、グラフと報告用レポートを作る流れを20秒の動画にしました。

以下は、記事内容を分かりやすく見せるための再現デモです。実際の画面、処理速度、グラフの配置は、Data Formulatorのバージョンと利用するAIモデルによって異なります。

CSV投入から日本語による売上分析、異常値検出、レポート作成までの再現デモ


Microsoft Data Formulatorとは

Data Formulatorは、Microsoft Researchが開発するAIデータ分析・可視化ツールです。

公式GitHub:

microsoft/data-formulator

MITライセンスで公開されており、個人や企業がローカルPCへ導入して試せます。

Data Formulatorの特徴は、自然言語だけに依存せず、画面上の操作とAIへの指示を組み合わせる点です。

利用者は次の二つを自由に使い分けられます。

  • マウス操作で項目をグラフへ配置する
  • 日本語や英語で目的を説明する

例えば、既に「商品」「売上」という列があれば、マウスで商品を横軸、売上を縦軸へ置くだけでもグラフを作れます。

一方、次のような処理にはAIを利用します。

  • 年月列を新しく作る
  • 売上から原価を引いて粗利を作る
  • 前月比を計算する
  • 異常値を抽出する
  • 複数の表を結合する
  • 分析に適したグラフを提案する

現在のバージョン

2026年7月27日時点では、次の二つがあります。

バージョン 位置付け 推奨用途
0.7 最新安定版 通常利用・業務検証
0.8.0a4 プレビュー版 新機能の検証

0.8では、次の機能が追加・強化されています。

  • 会話によるデータベース読込
  • 質問、説明、表、グラフを一つの履歴で管理
  • 過去の分析地点から別の方向へ分岐
  • CSV、JSON、Excelなどの添付を継続利用
  • Gantt、スパークライン、バイオリンなどのグラフ
  • Databricks接続
  • Microsoft Entra ID認証
  • 接続診断とログ確認

ただし、0.8は正式安定版ではありません。

この記事では、初心者が同じ環境を再現しやすいように、安定版0.7を使います。


Data Formulatorで読み込めるデータ

ファイル

  • CSV
  • TSV
  • Excel:XLSX
  • JSON
  • 画像や画面キャプチャ
  • コピーしたテキスト

データベース・外部サービス

  • MySQL
  • PostgreSQL
  • Microsoft SQL Server
  • BigQuery
  • Azure Data Explorer
  • Cosmos DB
  • Amazon S3
  • Azure Blob Storage
  • Apache Superset
  • Databricks:0.8プレビュー

Excelファイルは、表形式に整理されているほど安定して分析できます。

複数の見出し、結合セル、説明文、空白行、印刷用レイアウトが混ざった帳票は、事前に表として整理する必要があります。


ChatGPTへExcelを渡す方法との違い

項目 Data Formulator 一般的なAIチャット
主な目的 データ分析・可視化 幅広い質問への回答
グラフ編集 画面上で編集可能 再指示が必要
分析履歴 分析の枝分かれを保持 会話履歴が中心
データベース コネクターを利用可能 通常は別途連携が必要
レポート 複数グラフを配置して出力 文章・ファイル生成が中心
ローカルAI Ollamaを利用可能 サービスによる

Data Formulatorは、Excelを一回分析して終わるツールではありません。

グラフを見ながら追加質問し、分析の方向を変更し、複数の発見を一つのレポートへまとめる作業に向いています。


今回使用するサンプルCSV

記事と同時に配布しているCSVには、2026年6月と7月の架空売上が入っています。

列は次のとおりです。

日付
伝票番号
得意先
商品
担当者
数量
単価
売上
原価
粗利

7月24日には、通常より大きい150,000円の注文を意図的に一件入れています。

このデータを使用して、単純な売上合計だけでは分からない問題を探します。

サンプルデータの正解

項目 結果
6月売上 219,400円
7月売上 301,800円
7月前月比 +37.6%
異常値候補 7月24日・150,000円

売上合計だけを見ると、7月は好調に見えます。

しかし、150,000円の注文を除くと、7月売上は151,800円です。

6月と比較すると約30.8%減少しています。

商品別では次の変化があります。

商品 6月 7月 前月比
商品A 57,600円 39,600円 -31.3%
商品B 55,000円 187,500円 +240.9%
商品C 60,000円 36,000円 -40.0%
商品D 46,800円 38,700円 -17.3%

商品Bの一件の大型注文によって、全体の売上増加が作られています。

このような「合計は増えているが、通常の受注は減っている」という状況をAIに探させます。


Windowsへ最も簡単に導入する

Data Formulatorの公式READMEでは、Pythonパッケージ管理ツールuvによる起動が推奨されています。

Step 1:作業フォルダを作る

PowerShellを開きます。

New-Item -ItemType Directory `
  -Path C:\DataFormulator `
  -Force

Set-Location C:\DataFormulator

Step 2:uvをインストールする

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

インターネットから取得したスクリプトを直接実行したくない場合は、先に内容を表示します。

powershell -c "irm https://astral.sh/uv/install.ps1 | more"

インストール後、一度PowerShellを閉じ、再び開きます。

uv --version

Step 3:Data Formulatorを起動する

Set-Location C:\DataFormulator

uvx data_formulator

必要な環境が自動的に準備され、ブラウザで次の画面が開きます。

http://localhost:5567

自動で開かない場合は、ChromeまたはEdgeへURLを入力してください。


ポート5567が使用中の場合

別のポートを指定します。

uvx data_formulator --port 8080

ブラウザで次を開きます。

http://localhost:8080

利用できる起動オプションを確認する場合:

uvx data_formulator --help

プレビュー版0.8を試す方法

uvx data_formulator@0.8.0a4

0.8は開発途中のプレビュー版です。

画面や保存形式、設定方法が変更される可能性があります。

業務データや継続利用には安定版0.7を推奨します。


AIモデルを設定する

Data Formulatorは、AIモデルなしでも手動でグラフを作れます。

日本語の質問から集計やグラフを自動生成するには、AIモデルを設定します。

対応する主な方式は次のとおりです。

  • OpenAI
  • Azure OpenAI
  • Anthropic Claude
  • Ollama
  • LiteLLM対応プロバイダー

画面上のモデル設定から、利用するプロバイダー、モデル名、APIキーを登録します。

APIキーを質問欄へ貼り付けてはいけません。

必ずモデル設定画面または環境変数を利用します。


環境変数でAIモデルを設定する

複数回利用する場合は、.envファイルへ設定できます。

OpenAI

OPENAI_ENABLED=true
OPENAI_API_KEY=ここへAPIキー
OPENAI_MODELS=利用するモデル名

Anthropic

ANTHROPIC_ENABLED=true
ANTHROPIC_API_KEY=ここへAPIキー
ANTHROPIC_MODELS=利用するClaudeモデル名

Ollama

OLLAMA_ENABLED=true
OLLAMA_API_BASE=http://localhost:11434
OLLAMA_MODELS=qwen3:8b

モデル名は、利用時点で契約・導入しているものへ変更してください。

.envをGitHubや共有フォルダへ保存してはいけません。


サンプルCSVを読み込む

  1. Data Formulatorを起動する
  2. Load Dataまたはデータ追加を開く
  3. 配布したCSVを選ぶ
  4. 表のプレビューを確認する
  5. 日付と数値列が正しく認識されているか確認する

次の列が数値として認識されていることを確認します。

  • 数量
  • 単価
  • 売上
  • 原価
  • 粗利

文字列として認識されると、合計や平均を正しく計算できません。


最初に入力する分析Prompt

この売上データを分析してください。

最初に、6月と7月について次を計算してください。

・月別売上合計
・月別粗利合計
・前月比
・伝票件数
・平均伝票単価

結果を表として表示してください。

期待する売上結果は次です。

6月:219,400円
7月:301,800円
前月比:+37.6%

結果が一致しない場合は、その後の分析へ進まず、日付列と売上列の認識を確認します。


商品別の売上減少を探す

6月と7月の商品別売上を比較してください。

商品ごとに次を表示してください。

・6月売上
・7月売上
・増減額
・前月比

売上が減少した商品を、
減少率が大きい順に並べてください。

集合棒グラフも作成してください。

この質問により、全体売上が増えていても、商品A、C、Dが減少していることを確認できます。


異常に大きな注文を探す

売上金額が通常の注文と比べて
著しく大きい伝票を探してください。

異常値と判断した方法も説明してください。

対象の日付、伝票番号、得意先、商品、
担当者、売上を表にしてください。

異常値を強調した日別売上グラフも作成してください。

サンプルデータでは、次が候補になります。

日付:2026年7月24日
伝票番号:S-0710
得意先:青空商事
商品:商品B
担当者:田中
売上:150,000円

AIが「不正注文」「入力ミス」と断定してはいけません。

正しい大型注文の可能性もあります。

レポートでは「異常値候補」「要確認」と記載します。


異常注文を除いた通常売上を確認する

150,000円の伝票を除外した場合の
7月売上を計算してください。

6月売上と比較し、
増減額と前月比を表示してください。

除外前と除外後を比較するグラフを作成してください。

期待する結果:

7月売上:301,800円
異常値候補を除いた7月売上:151,800円
6月売上:219,400円

異常値候補を除いた前月比:約-30.8%

この分析により、「全体売上は増加した」という表面的な結論から、一歩踏み込めます。


担当者別の分析

担当者別に次を集計してください。

・売上合計
・粗利合計
・伝票件数
・平均伝票単価
・担当した商品数
・担当した得意先数

売上と粗利を比較できるグラフを作ってください。

異常値候補の伝票が各担当者の結果に
どの程度影響しているかも説明してください。

売上だけで担当者を評価すると、大型注文一件に結果が左右されます。

伝票件数、粗利、平均単価も同時に確認します。


得意先別の分析

得意先別の売上と粗利を集計してください。

6月と7月を比較し、
売上が減少した得意先を抽出してください。

得意先別売上の棒グラフと、
売上・粗利の散布図を作成してください。

売上が大きくても粗利が低い得意先が存在する可能性があります。

売上高だけではなく、粗利との関係を確認します。


AIへ分析案を提案させる

このデータを管理職へ報告する場合、
追加で確認すべき分析を5つ提案してください。

各分析について、
・確認する目的
・必要な列
・適したグラフ
・判断できること
を説明してください。

データから判断できない内容は含めないでください。

Data FormulatorのAgent Modeでは、高いレベルの目的を伝え、AIへ分析計画を作らせることもできます。

ただし、AIが提案した分析が業務上意味を持つかは、人間が判断します。


分析履歴を分岐する

一つの分析結果から、別の方向へ調査できます。

例えば、商品Bの大型注文を発見した時点から、次の二つへ分岐します。

分岐A:大型注文を含める

実績として大型注文を含め、
全体売上と担当者実績を分析してください。

分岐B:通常傾向を調べる

大型注文を除外し、
通常の受注傾向を分析してください。

元の分析を失わず、異なる前提の結果を比較できることがData Formulatorの特徴です。


レポートを作成する

分析で作成したグラフの中から、報告に必要なものを選びます。

推奨構成:

  1. 6月・7月の主要KPI
  2. 商品別売上比較
  3. 担当者別売上・粗利
  4. 日別売上と異常値
  5. 大型注文を除外した比較
  6. 管理職向けの要確認事項

報告コメントには、次のように記載します。

7月売上は301,800円で、6月比37.6%増となりました。ただし、7月24日の150,000円の注文が全体を大きく押し上げています。この伝票を除く7月売上は151,800円で、6月比約30.8%減です。商品A、C、Dでも前月割れが見られるため、大型注文を除く通常受注の減少について確認が必要です。

完成したレポートは画像またはPDFとして出力します。


Ollamaで社内完結させる

売上、原価、得意先名をクラウドAIへ送信できない場合は、Ollamaを利用します。

Ollamaをインストールする

Windows PowerShell:

irm https://ollama.com/install.ps1 | iex

またはOllama公式サイトからWindows版を取得します。

モデルを取得する

比較的軽いモデル:

ollama pull qwen3:8b

メモリに余裕があり、分析精度を重視する場合:

ollama pull qwen3:32b

一覧を確認します。

ollama list

Data Formulatorへ登録する

OLLAMA_ENABLED=true
OLLAMA_API_BASE=http://localhost:11434
OLLAMA_MODELS=qwen3:8b

Data Formulatorを再起動し、モデル一覧からOllamaモデルを選択します。


ローカルAIの注意点

小型モデルでは、次の問題が発生することがあります。

  • 正しい集計コードを生成できない
  • 日本語の列名を取り違える
  • 前月比の計算を誤る
  • グラフに不要な項目を入れる
  • 分析の途中で目的を見失う

クラウドAIとOllamaで同じ質問を実行し、次を比較してください。

  • 数値の正確性
  • 処理時間
  • グラフ品質
  • 説明の分かりやすさ
  • PCのメモリ使用量

ローカルだから安全、クラウドだから危険と単純には判断できません。

ローカルPCのアクセス権限、バックアップ、マルウェア対策も必要です。


MariaDBへ接続する場合

Data FormulatorはMySQL接続に対応しています。

MariaDBでも互換性の範囲で接続できる可能性がありますが、本番環境で使う前に必ず検証してください。

最も重要なのは、読み取り専用ユーザーを作ることです。

CREATE USER
  'data_formulator_ro'@'分析端末のIP'
  IDENTIFIED BY '十分に長い専用パスワード';

GRANT SELECT
ON sales_analysis.*
TO 'data_formulator_ro'@'分析端末のIP';

FLUSH PRIVILEGES;

次の権限を与えてはいけません。

  • INSERT
  • UPDATE
  • DELETE
  • DROP
  • ALTER
  • CREATE
  • FILE

分析専用ビューを作る

CREATE VIEW ai_sales_analysis AS
SELECT
    sale_date,
    slip_number,
    customer_name,
    product_name,
    salesperson_name,
    quantity,
    unit_price,
    sales_amount,
    cost_amount,
    sales_amount - cost_amount AS gross_profit
FROM sales_details
WHERE deleted_at IS NULL;

個人情報や不要な内部列を、AIから見えないようにします。


本番DBへ直接つながない構成

本番DB
  ↓ 夜間コピー・ETL
分析専用DB
  ↓ 読み取り専用
Data Formulator

可能であれば、本番DBではなく分析専用のコピーへ接続します。

AIが大量クエリを生成した場合でも、本番業務へ影響しにくくなります。


Dockerで起動する

サーバーへ配置する場合は、公式リポジトリを取得します。

git clone https://github.com/microsoft/data-formulator.git
cd data-formulator

cp .env.template .env

.envへモデル設定と秘密鍵を登録します。

docker compose up --build

ブラウザで次を開きます。

http://localhost:5567

停止:

docker compose down

社内サーバーへ公開する際の注意

Data Formulatorは、初期状態では匿名利用を想定できる構成です。

認証なしでインターネットへ公開してはいけません。

最低でも次を設定します。

  • HTTPS
  • VPNまたはアクセス元IP制限
  • OIDC、OAuth2、GitHub OAuthなどの認証
  • ユーザー別の保存領域
  • APIキーの画面表示禁止
  • 外部DBコネクターの制限
  • カスタムAI接続先の制限
  • サーバーログの保護

本番向け設定例

DISABLE_DISPLAY_KEYS=true
SANDBOX=docker
DISABLE_CUSTOM_MODELS=true
FLASK_SECRET_KEY=十分に長い固定秘密鍵
DATA_FORMULATOR_HOME=/var/lib/data-formulator

複数ユーザーへ公開し、DB接続を許可しない場合:

DISABLE_DATA_CONNECTORS=true

AIが生成するコードをサンドボックス化する

Data Formulatorでは、AIがデータ変換用のPythonやSQLを生成します。

設定できる実行方式は次です。

SANDBOX=local

または:

SANDBOX=docker

個人PCでの試用はlocalでも可能ですが、複数ユーザーや機密データを扱うサーバーではDocker分離を検討します。

Dockerを使うだけで完全に安全になるわけではありません。

マウントするフォルダ、ネットワーク、環境変数、CPU・メモリ制限も確認します。


AIの分析を信用しすぎない

Data Formulatorが作ったグラフは、AIの判断を可視化したものです。

グラフが美しくても、計算が正しいとは限りません。

必ず確認する項目

  • 元データ件数
  • 売上合計
  • 粗利合計
  • 日付範囲
  • 除外したデータ
  • 重複伝票
  • 欠損値
  • 異常値の定義
  • グラフの軸
  • 単位

危険なAIの回答

商品Cの人気が低下したため、
売上が40%減少しました。

CSVだけでは、人気が低下したことは分かりません。

適切な回答

商品Cの7月売上は36,000円で、
6月の60,000円から40%減少しています。

原因はこのデータだけでは判断できないため、
受注件数、在庫、価格、顧客別状況の確認が必要です。

事務職で使える分析例

  • 部署別経費
  • 残業時間
  • 有給取得率
  • 問い合わせ件数
  • 採用応募数
  • 請求書処理件数
  • 未入金一覧
  • 予算実績比較

営業で使える分析例

  • 担当者別売上
  • 得意先別粗利
  • 見積受注率
  • 失注理由
  • 商談期間
  • 休眠顧客
  • 商品別販売推移

製造業で使える分析例

  • 品番別生産数
  • 設備別稼働率
  • 不良率
  • 停止時間
  • 納期遅延
  • 在庫回転
  • 電力デマンド
  • 原料価格推移
  • 工程別原価

製造業向けPrompt

設備別に生産数、不良数、不良率、
停止時間を集計してください。

不良率が高い設備と、
前週から悪化した設備を抽出してください。

停止時間と不良率の関係を
散布図で確認してください。

データから原因を断定せず、
追加確認が必要な項目を示してください。

Power BI・Excelとの使い分け

Excelが向く場合

  • 毎回同じ表を手作業で調整する
  • 数式を細かく管理する
  • 社内標準がExcelである
  • 印刷帳票が必要

Power BIが向く場合

  • 定型ダッシュボードを継続共有する
  • Microsoft 365と統合する
  • 大規模なデータモデルを管理する
  • 組織的な権限管理が必要

Data Formulatorが向く場合

  • データを対話的に探索したい
  • 何を分析すべきか決まっていない
  • グラフを短時間で試したい
  • AIへ追加質問しながら分析したい
  • OSSとして社内へ構築したい

Data Formulatorで分析方法を見つけ、その後、定型化したダッシュボードをPower BIや自社システムへ移す使い方もできます。


よくある失敗

日本語で質問しても正しく動かない

使用しているAIモデルの日本語能力とコード生成能力を確認します。

短い質問へ分割すると改善する場合があります。

売上列が合計されない

売上が文字列として読み込まれている可能性があります。

カンマ、円記号、空白を除去し、数値型へ変換します。

日付が月別に集計されない

日付列が文字列になっている可能性があります。

日付列を日付型へ変換し、
YYYY-MM形式の年月列を作ってください。

異常値を断定する

Promptへ次を追加します。

異常値は不正や入力ミスと断定せず、
確認が必要な候補として表示してください。

Ollamaで処理が非常に遅い

  • 小さいモデルへ変更する
  • 行数を減らして試す
  • 一回の依頼を短くする
  • GPU対応を確認する
  • 分析を段階へ分ける

本番導入前のチェックリスト

  • 架空データで検証した
  • 元データと合計が一致する
  • AIの分析根拠を確認できる
  • APIキーを安全に保管している
  • クラウドAIへの送信可否を確認した
  • DBユーザーは読み取り専用である
  • 分析対象列を限定した
  • 個人情報を除外した
  • 認証なしで公開していない
  • AI生成コードの実行環境を分離した
  • レポートを人間が確認する
  • AIの回答を経営判断へ直接使用しない

まとめ

Microsoft Data Formulatorを使うと、ExcelやCSVのデータへ日本語で質問し、表、グラフ、説明、レポートを作成できます。

本記事では、次の処理を行いました。

  • WindowsへData Formulatorを導入
  • サンプル売上CSVを読み込み
  • 6月と7月の売上を比較
  • 商品別の売上減少を抽出
  • 通常より大きい注文を発見
  • 異常値を除外した通常傾向を分析
  • 担当者・得意先別グラフを作成
  • 管理職向けレポートを作成
  • OllamaでローカルAI化
  • MariaDBへ安全に接続する構成を確認
  • Dockerによるサーバー配置を紹介

Data Formulatorの価値は、AIが一回で正解を出すことではありません。

グラフを確認し、追加質問し、条件を変え、別の分析へ分岐できることにあります。

今回のサンプルでは、単純な売上合計だけを見ると、7月は37.6%増でした。

しかし、大型注文を除くと約30.8%減であり、四商品のうち三商品が前月割れしていました。

合計数字だけでは見落とす状況を、AIとグラフを使って掘り下げられます。

ExcelをAIへ渡して答えをもらうのではなく、AIと一緒にデータを調べ、根拠を確認しながら分析を進める。

Data Formulatorは、その新しいデータ分析方法を無料で試せる有力なオープンソースです。


参考資料

本記事は2026年7月27日時点の公式情報を基に作成しています。Data Formulator、対応モデル、接続方式、画面、CLIオプションは更新される可能性があります。導入時は必ず公式READMEとRelease Notesを確認してください。

ABOUT ME
Yuusuke
業務システムの要件定義・設計・実装を担当。Python、PHP、JavaScript、VBA、Oracle、MySQLなど、実務と個人開発で検証した内容を発信しています。