0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cursorなしで、社内CSVを自然言語で集計する(Compass)

社内の売上CSVを開いて、「今月の上位商品は?」「店舗別の合計は?」と聞きたいだけなのに、毎回 Excel のピボットを組むか、SQL を書くか、Cursor を開いてプロンプトを工夫するか——そのどれも少し重い、という人向けの話です。

この記事では、Windows 向け AI ワークスペース Compass を使って、ローカルの CSV を自然言語で集計する手順をまとめます。コードを書く話はしません。


先に結論

  1. CSV が入ったフォルダを Compass で開く
  2. エクスプローラーで CSV を右クリック → データについて聞く
  3. 「月別の売上を集計して」などと聞く
  4. 必要なら 結果を Markdown/CSV に保存、または HTML チャートにしてタブブラウザで開く
  5. 来週は .result.md から クエリを再実行

裏側では一時的な SQLite に取り込んで、読み取り専用の SELECT を回しています。元の CSV は勝手に書き換えません。

完成形:自然言語で集計し HTML チャートまで


この記事の対象

向いている人:

  • Windows で社内 CSV / エクスポートデータを触ることが多い
  • Excel は使えるが、毎回ピボットを組みたくない
  • Cursor や VS Code は「開発者向けすぎる」と感じる
  • 集計結果をフォルダに残して、来週同じ質問を再実行したい
  • 表だけじゃなく、会議用に棒グラフ/折れ線の HTML も欲しい

向かない人:

  • すでに Cursor / Claude Code で CSV を快適に扱えている
  • Mac / Linux だけ(Compass は現状 Windows のみ)
  • API キーを一切使わず、完全オフラインだけで Agent 集計したい(後述)

用意するもの

もの 内容
OS Windows 10 / 11(x64)
アプリ Compass のインストーラCompass Setup x.y.z.exe
LLM Agent(ツール呼び出し)対応の API。OpenAI / Gemini / DeepSeek / Groq / OpenRouter など
データ 社内の CSV(または下のサンプル)

注意:

  • Ollama だけだと Ask / Edit は使えますが、Agent が使えないため、この記事の本丸(自然言語 → SQL 集計)は動きません
  • Claude を使いたい場合は、現状は OpenRouter 経由が現実的です
  • 1ファイルの取込上限は 8MB。結果表示は最大 200 行程度で打ち切られます

サンプル CSV(手元に社内データがない人向け)

作業フォルダに sales.csv を作ってください(UTF-8 でも Shift_JIS でも可)。

日付,店舗,商品,数量,売上
2026-06-01,渋谷,ノートPC,2,240000
2026-06-01,渋谷,マウス,10,30000
2026-06-02,新宿,ノートPC,1,120000
2026-06-02,新宿,キーボード,5,40000
2026-06-03,渋谷,モニター,3,90000
2026-06-03,池袋,マウス,20,60000
2026-06-04,新宿,ノートPC,2,240000
2026-06-04,池袋,キーボード,8,64000
2026-06-05,渋谷,ノートPC,1,120000
2026-06-05,新宿,モニター,2,60000

社内実データでも同じ手順です。個人情報が入っている場合は、試す前にマスクしてください。


手順

1. インストールと LLM 設定

  1. Releases からインストーラを落とす
  2. Compass を起動
  3. 設定でプロバイダ・API キー・モデルを保存する
    → ここは Agent(tools)が使えるモデルを選ぶ
    • さくらのAI Engine の OpenAI互換API でも使えます。
      無償枠が3,000リクエストあり、十分使用できます。

2. CSV のあるフォルダを開く

ファイル → フォルダを開く で、sales.csv があるフォルダを選びます。

Agent はワークスペース(開いたフォルダ)前提です。単発ファイルだけドラッグ、だと本機能は使いにくいです。

3. 右クリックで聞く(いちばん早い)

左のエクスプローラーで sales.csv を選択 → 右クリック → データについて聞く

右クリックメニュー「データについて聞く」

これでモードが Agent、用途が データ に自動で寄ります。チャットに例えばこう書きます。

店舗別の売上合計を出して。多い順に並べて。

または:

商品別の数量と売上を集計して。表で見せて。
6月前半で売上が大きい店舗トップ3は?

チャットに表や要約が返ってくれば成功です。ステップ表示に imported …cached … が出ていれば、CSV が一時 SQLite に乗っています。

Agent+データで店舗別売上が表で返った状態

4. 結果をフォルダに残す

「チャットで見えただけ」だと、来週また同じ質問を打ち直すことになります。残したいときは次のどちらかです。

  • エクスプローラーで CSV を右クリック → 結果を Markdown/CSV に保存
  • またはチャットで「結果を Markdown と CSV でソースの横に保存して」と頼む

出てきた差分を確認して 適用 すると、だいたい次のようなサイドカーが並びます。

sales.csv
sales.result.md    ← 要約・表・クエリ情報
sales.result.csv   ← 必要なら表データ

適用後:sales.csv の横に .result.md / .result.csv が並ぶ

元の sales.csv は触られません。書き込みはプレビュー承認後だけです。

5. 集計結果を HTML チャートにする

表だけだと会議や報告で弱いときがあります。Compass には「グラフボタン」はありませんが、Agent に HTML を書かせて、アプリ内のタブブラウザで開く流れが使えます。

集計が返ってきたあと(または最初からまとめて)、チャットにこう頼みます。

店舗別の売上合計を棒グラフの HTML にして。
Chart.js(CDN)を使い、データを HTML 内に埋め込んだ単一ファイル sales.chart.html をソースの横に作って。
外向きのサーバーは立てないで。

折れ線にしたいとき:

日付ごとの売上合計を折れ線グラフの HTML(sales.trend.html)にして。
Chart.js の CDN を使い、1ファイルで開けるようにして。

円グラフ例:

商品別売上の構成比をドーナツチャートの HTML(sales.share.html)にして。
凡例と金額ラベルを付けて。

流れは次のとおりです。

  1. Agent が集計(profileDataqueryData)したうえで、sales.share.html などの writeFile 提案を出す
  2. 差分プレビューを確認して 適用
  3. エクスプローラーでその .html を右クリック → タブブラウザで開く
sales.csv
sales.result.md
sales.share.html   ← ここをタブブラウザで開く

タブブラウザで円グラフ HTML を表示した状態

ポイント:

  • 単一 HTML(CDN + 埋め込みデータ)にすると、社内共有やメール添付もしやすい
  • 見た目の確認は OS のブラウザでもよいが、Compass なら作業フォルダから離れずに見られる
  • 「画像を生成して」ではなく HTML チャートをファイルとして残すのがこの用途のやり方
  • ネット制限の強い環境では CDN(Chart.js 等)がブロックされることがある。そのときは「CDN なし・純 SVG の棒グラフ HTML にして」と頼む

効くプロンプトの型はだいたいこれです。

(何を)を(棒/折れ線/円)グラフの単一 HTML にして。
ファイル名は ○○.html。Chart.js の CDN 可。データを HTML に埋め込む。
適用後にタブブラウザで開ける状態にして。

6. 来週、同じ集計を再実行する

CSV が更新されたら、sales.result.md を右クリック(またはエディタタブの右クリック)→ クエリを再実行

.result.md の右クリック「クエリを再実行」

.result.md の frontmatter に前回のクエリが残っているので、同じ SELECT を再走して結果ファイルを更新提案してくれます。ここが「ピボットを毎回組み直す」より楽なポイントです。

チャート HTML は .result.md の再実行対象ではありません。CSV が変わったら、同じ「HTML にして」プロンプトをもう一度投げるか、「sales.share.html を最新の商品別売上で更新して」と頼むのが確実です。


うまく聞くコツ

効きやすい聞き方:

  • 「店舗別の売上合計を多い順で」
  • 「商品=ノートPC の行だけ抽出して」
  • 「日付ごとの売上推移を表で」
  • 「店舗別売上を棒グラフの単一 HTML(Chart.js)にして」

効きにくい聞き方:

  • 「いい感じに分析して」(何を軸にするか不明)
  • 「全部グラフ化して」(種類・軸・ファイル名がない)
  • 「画像のグラフを生成して」(PNG 生成ではなく、HTML チャートをファイル化する)
  • 「この CSV を上書きで直して」(集計用途ではない。整形は Edit+データの話)

複数 CSV があるときは、エクスプローラーで複数選んでから データについて聞く と、突き合わせ(JOIN 相当)も頼みやすいです。

用語や社内ルール(「売上=税抜」「店舗コードの読み方」など)は、ワークスペースの .compass/rules.md に書いておくとブレが減ります。


Cursor でやらない理由(この用途に限る)

Cursor はコード向け AI IDE として強いです。一方、社内 CSV の「聞いて・表で見て・結果ファイルを残して・再実行」だけが目的なら、次の差が出ます。

Compass(この用途) Cursor
入り口 CSV 右クリックでデータ用途に直行 エディタ/Composer に自分で載せる
結果の残し方 ソース横の .result.md / .result.csv+再実行 チャットログか、自分でファイル化
チャート Agent が HTML を書き、タブブラウザで開く 別途プレビューやブラウザへ持っていくことが多い
対象ユーザー感 フォルダ+テキスト/データの作業机 開発者向け IDE
書き込み 差分プレビュー後に適用 強力だが、用途がコード中心

「Cursor を捨てろ」という話ではありません。CSV 集計だけのために IDE を開きたくない人向けの近道、という位置づけです。


つまずきポイント

症状 確認すること
Agent が出ない / データ集計できない Ollama だけになっていないか。tools 対応のクラウドモデルか
取込めない ファイルが 8MB 超えていないか。CSV/TSV、またはオブジェクト配列 JSON か
列名が変 日本語ヘッダは SQL 用に正規化されることがある。質問では元の意味で聞いてよい
文字化け Shift_JIS の社内 CSV も読める想定。ダメなら UTF-8 で一度保存して試す
結果が途中で切れる 表示上限(行数・文字数)あり。絞り込み条件を足す
HTML チャートが真っ白 CDN が社内ネットで止まっていないか。ダメなら「純 SVG・CDN なし」で作り直し
HTML の開き方が分からない エクスプローラーで .html を右クリック → タブブラウザで開くCtrl+Shift+B で空のブラウザタブも可)

まとめ

  • 社内 CSV の「自然言語集計」は、Compass なら フォルダを開く → 右クリックで聞く → 結果を保存 → 再実行 で回せる
  • 会議用なら 集計 → 単一 HTML チャート → タブブラウザで開く まで同じ作業机で完結する
  • 裏側は一時 SQLite の読み取り専用クエリ。元ファイルは勝手に壊さない
  • API(Agent 対応モデル)は必要。Ollama 単体ではこの用途は不可

試す場合はこちらです。

「このプロバイダ/モデルだとこうなった」「この聞き方だと外れた」などあれば、GitHub Issues に投げてもらえると助かります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?