2026年10月8日にpandas 3.0.6の現行ドキュメント、Microsoft Power BIの共有権限、GoogleのLooker Studio移行案内を再確認した。Excel・SQL・Python・BIは行数だけで優劣を決める製品比較ではなく、データ所在、反復処理、更新、再現性、共有、権限、費用の工程で選ぶ。pandasのDataFrameや集計は入力・版・依存関係の記録が必要で、Power BIはレポートを共有すると基盤モデルへのアクセスも関係し、Looker Studioの名称移行と料金・共有条件を混同しない。
データ分析ツール入門:ExcelからBIツール、Pythonまで
分析ツールを選ぶとき、「何が一番高機能か」より先に確認したいことがあります。必要なデータはどこにあり、どの作業を繰り返し、誰が結果を見るのでしょうか。単発の集計と、毎朝更新する部門別の報告では、必要な仕組みが違います。
Excel、SQL、Python、BIは、同じ役割を取り合う四つの製品ではありません。SQLとPythonは言語で、実行する環境も必要です。BIは、集計やグラフを通じて業務の情報を共有する道具の分類です。工程を分けて考えると、必要な部分だけを選べます。
30秒で要点
- 表を確かめる、データを取り出す、処理を再実行する、結果を共有する、を分ける。
- 行数だけでなく、更新の頻度と担当者が引き継げるかを試す。
- ダッシュボードが開くことと、データが新しく正しいことは別に確認する。
- 無償プランでも、共有権限や接続先の費用は確認する。
四つの役割から選ぶ
表が収まらない場合は、横にスクロールできます
| 候補 | 得意な入口 | 先に確かめること |
|---|---|---|
| Excel | 表の確認、関数、ピボットテーブル、簡単なグラフ | 元データと手入力の分離、数式、更新手順、利用環境 |
| SQL | データベース内の抽出・集計・結合 | 閲覧権限、一行の意味、結合キー、処理負荷 |
| Python | 条件の多い加工、統計処理、繰り返し計算 | 入力、依存環境、コードの読み手、実行と保守の担当 |
| BI | 定義を共有した指標の可視化と定期報告 | 誰が何を見られるか、更新元、更新失敗、利用条件 |
例えば月一回の小さな表を確認するだけなら、既に管理できるExcelで足りることがあります。データベース側で集計できるなら、全件を手元へ移さず、SQLで必要な範囲を取り出す方法もあります。部署に配る報告は、Excelでの確認とBIでの共有を組み合わせても構いません。
Excelは、手軽さと手順の記録を両立できるか
Excelでは、並べ替え・フィルター、合計や平均の関数、条件別に集計するピボットテーブル、グラフを使えます。計算前の行を直接見ながら、件数や値の意味を確認しやすいのが利点です。
ただし、手修正したセルだけを引き継ぐと、次月の担当者が同じ処理を再現できません。元データ、加工、集計結果を区別し、手で直した箇所には理由を残します。数式の範囲に新しい行が入っているかも確認します。
Power Queryは、取り込みと変換の手順を保存し、同じ処理を再実行するための機能です。Excelを「手作業しか残せない道具」と決めつける必要はありません。ただし、接続先や認証、更新方法は、Power Queryを使う製品・環境によって異なります。Microsoftの説明
2026年10月4日に確認したExcelの公式仕様では、ワークシートは1,048,576行・16,384列です。これは一枚のシートの上限で、快適に操作できる量の保証ではありません。列の幅、数式、結合、メモリなどでも負荷が変わります。「数十万行なら必ず移行」と決めるより、実際の処理と更新時間で判断します。
SQLは、欲しい数字の定義を抽出条件にする
SQLはデータベースに問い合わせる言語です。例えば「完了した注文だけを取り出し、月別に金額を合計する」という条件を記述します。抽出するSELECT、条件を絞るWHERE、分類するGROUP BY、合計するSUMなどが基本になります。PostgreSQLの集計の解説
最初に確認したいのは、一行が注文なのか、注文明細なのかです。注文表と明細表を結合すると、一つの注文に複数の明細が対応することがあります。その結果へ注文全体の金額を毎行付けて合計すれば、売上を重複計上します。JOINの仕組みを理解し、結合前後の行数と合計を照合します。
データを更新・削除するSQLもありますが、分析担当には、必要な読み取り範囲を絞った接続を用意するのが出発点です。SQLなら何件でも速いわけではありません。データ量、索引、条件、結合、実行環境によって負荷が変わるため、運用担当と実行条件を確認します。
Pythonは、計算の手順と入力をセットで残す
Pythonでは加工や統計処理をコードとして残せます。毎月同じ処理を行う場合や、条件が多く表の手操作では追いにくい場合に候補になります。ただし、大量データを一度に読み込めば、実行環境のメモリを使います。言語を替えるだけで処理量の問題が消えるわけではありません。
必要に応じて、機能を追加するライブラリを使います。
- pandas:表データの加工、結合、グループ別集計。
- NumPy:数値の配列や行列を扱う計算。
- Matplotlib:グラフの作成。
- scikit-learn:分類・回帰などの機械学習。
最初から全部を覚える必要はありません。単純な集計なら標準ライブラリで試せます。別の担当者が計算を再実行できるよう、入力データの版、抽出日時、処理条件、Pythonとライブラリの版も記録します。Python公式の仮想環境の説明は、仕事ごとに依存するパッケージを分ける入口になります。
コードが残っていても、元データが上書きされ、実行順が分からなければ、同じ結果を得られません。対話的な分析環境を使う場合も、最初から順に実行して結果を再現できるかを確認します。
BIは、見る人の権限と更新の条件まで設計する
BIでは、データに接続して、表やグラフ、絞り込みを備えた報告画面を作れます。ただし、「常に最新になる」は条件付きです。元データの締め処理、取り込みの成功、認証の有効性、キャッシュに残る結果などを確かめる必要があります。
以下は2026年10月4日に公式資料を確認した例です。契約前には、その時点のプランと組織設定を確認してください。
表が収まらない場合は、横にスクロールできます
| 製品・サービス | 選ぶ前の確認 |
|---|---|
| Power BI | 利用者ライセンスと容量で共有・閲覧条件が変わる。無料で個人利用できることを、そのまま全員への共有条件としない |
| Data Studio(旧Looker Studio) | セルフサービス版は作成者・閲覧者に無償、Proは有償。接続先の費用とデータを読む認証方法も確認する |
| Tableau | 公開用のTableau Publicと、非公開データを扱う構成を区別する。Publicへ公開した内容を社内限定の保管先と考えない |
Power BIでは、Pro・PPU・容量の組み合わせに条件があり、例えばF64以上などの適格な容量では無料利用者が共有内容を閲覧できる場合があります。PPUのワークスペースを、その容量と同じものとして扱わないようにします。Power BIのライセンス別機能
Googleは2026年4月16日の公式リリースノートで、Looker StudioからData Studioへの改称を案内しています。製品・料金の説明では無償のセルフサービス版と有償Proを区別しています。表示ツールが無償でも、外部の接続サービスやデータ処理を含む総費用は別に確認します。
Data Studioの所有者の認証と閲覧者の認証にも違いがあります。所有者の認証を使うと、閲覧者本人が元データへの権限を持たなくても、レポート経由で値を見られる場合があります。共有リンクの相手だけでなく、どの認証で何が見えるかを、閲覧者用の権限で確かめます。
データの鮮度も接続先や設定、クエリによって異なります。画面の更新ボタンだけに頼らず、元データの対象期間と最終更新時刻を報告に含めます。また、Tableau Publicの公式FAQは公開データの可視化・共有を説明しています。無償だからという理由だけで、機密のデータを公開しないよう用途を分けます。一つの集計を別の方法で確かめる
道具の評価には、答えを手計算できる小さなデータが役立ちます。次は同じ対象日の架空の注文四件です。金額はこの例で定義した注文金額とし、返品、税、送料の調整は含めません。statusがcompletedの注文だけを集計します。
表が収まらない場合は、横にスクロールできます
| 注文ID | status | 金額(円) |
|---|---|---|
| 1 | completed | 2000 |
| 2 | completed | 4000 |
| 3 | canceled | 9000 |
| 4 | completed | 6000 |
期待する答えは、完了3件、合計12,000円、一件平均4,000円です。全四件を足した21,000円と一致しないのは、除外条件があるためです。この定義をExcelやBIでも同じにして、結果を照合できます。
PythonとSQLを試す最小コード
以下はsqlite3を利用できるPython 3向けです。追加の分析ライブラリ、外部接続、入力ファイルは不要です。配布によってsqlite3が含まれない環境がある点は公式資料で確認できます。
コードは練習用のデータベースをメモリ内に作り、終了時に接続を閉じます。実際の業務データベースに対して表を作成・更新する例ではありません。
import sqlite3
orders = [
(1, "completed", 2000),
(2, "completed", 4000),
(3, "canceled", 9000),
(4, "completed", 6000),
]
con = sqlite3.connect(":memory:")
try:
con.execute("""
CREATE TABLE orders (
order_id INTEGER PRIMARY KEY,
status TEXT NOT NULL,
amount_yen INTEGER NOT NULL
)
""")
con.executemany("INSERT INTO orders VALUES (?, ?, ?)", orders)
count, total, average = con.execute("""
SELECT COUNT(*), SUM(amount_yen), AVG(amount_yen)
FROM orders WHERE status = ?
""", ("completed",)).fetchone()
print(f"count={count}, total={total}, average={average:.0f}")
finally:
con.close()
出力は「count=3, total=12000, average=4000」です。空の結果や欠測、通貨換算などはこの小さな入力には含みません。業務で使う際は、その条件を追加してから検証します。ここでは、Pythonが実行を管理し、SQLが条件に合う行の集計を行う役割の違いを確かめられます。
最小の検証は、同じ報告を翌回も作れるか試すこと
候補を一つ選び、公開可能な練習データで小さな報告を作ります。完成した画面だけで終わらず、次の四点まで確かめます。
- 正確さ:行数と合計を手計算と照合し、除外条件を説明できるか。
- 再実行:新しい対象日のデータを渡し、別の担当者が同じ手順を繰り返せるか。
- 更新:更新に失敗した場合に気づけるか。古い対象期間を最新と誤認しないか。
- 共有:閲覧者に必要な範囲だけが見え、不要な編集や元データ閲覧を許していないか。
そのうえで、ライセンス、接続先の処理、保管、作成・確認・保守の作業を費用として見積もります。少ない行でも毎日の手直しが重ければ改善の余地があり、多い行でもデータベース側で集計済みなら、共有する結果は小さくできます。
分析の問いをまだ決められない場合はデータ分析の考え方、数字の読み方は統計の判断ハブ、伝え方はデータ可視化入門が次の判断を助けます。ツール選びは、翌回も同じ意味の数字を作り、必要な人に渡せるかで確かめていけます。