主なポイント:
- Excelでサンキーダイアグラムを作成するには、従来はサードパーティ製のアドインと技術的知識が必要であり、ビジネスプロフェッショナルにとって障壁となっていた
- Excelmaticは、シンプルな言語指示から瞬時にサンキーダイアグラムを生成することでプロセスを簡素化し、コーディングや複雑な設定は不要
- Excel、Python、Rでの手動作成方法と比較して、Excelmaticは数秒でプロフェッショナルなサンキー可視化を実現し、技術的な実装ではなく洞察に集中できる
- 市場、営業、運用のプロフェッショナルがデータフローを迅速に可視化する必要がある場合、ExcelmaticのようなAIツールを採用することで、より迅速な分析とより良い意思決定が可能になる
サンキーダイアグラムの美しさは、多段階システムを簡素化する能力にある。最大のエネルギー損失や予算配分を見つけるためにデータの行を探し回る代わりに、最も太いフローを見ることで瞬時にそれらを見つけることができる。これは、正確な数値比較よりも、リソースの流れと変容を理解することが重要な、エネルギー管理、財務分析、マーケティングファネル最適化、およびあらゆるシナリオで役立つ。
サンキーダイアグラムとは?
サンキーダイアグラムは、異なる段階、カテゴリー、またはエンティティ間のフローの大きさを接続する矢印の幅で表す特殊なフロー可視化である。プロセスステップを示す従来のフローチャートや離散値を比較する棒グラフとは異なり、サンキーダイアグラムは、量がシステム内でどのように移動、変容、または分配されるかを示すことに優れている。

上の図は、年間10万ドルの予算が異なるカテゴリーをどのように流れるかを示している。マーケティングへの配分(4万ドル)が、研究開発(2万5千ドル)と比較して視覚的に太いフローとして現れ、比例的な違いがすぐにわかることに注目してほしい。
サンキーダイアグラムの歴史と進化
最初の既知のサンキーダイアグラムは、1898年にキャプテン・マシュー・ヘンリー・フィニアス・リアル・サンキーが蒸気機関のエネルギー効率を示すために使用したときに登場した。彼の図は、燃料のエネルギーのごく一部だけが実際に有用な仕事に貢献し、大部分が廃熱として失われていることを明らかにした。

しかし、比例フロー可視化の概念はキャプテン・サンキー以前にさかのぼる。シャルル・ジョゼフ・ミナールは、1869年にナポレオンの悲惨な1812年ロシア遠征を描いた、多くの人が最も有名なフロー図と考えるものを作成した。ミナールの図は、軍隊がロシアに進軍し、その後退却するにつれて縮小する様子を示し、線の太さは生き残った兵士の数を表していた。

サンキーダイアグラムの構成要素
サンキーダイアグラムの主要な要素を理解することは、既存の図を解釈し、自分自身で効果的に作成するのに役立つ。
- ノードは、システム内のカテゴリー、段階、またはエンティティを表す。予算の例では、「年間予算」、「マーケティング」、「デジタル広告」はすべてノードである。ソースノード(「年間予算」など)は通常左側に表示され、ターゲットノード(「デジタル広告」など)は右側に表示される。
- フローまたはリンクは、ノード間の方向性のある接続であり、その幅は表す値に比例する。年間予算からマーケティングへの太いオレンジ色のフローは4万ドルを表し、コンテンツへのはるかに細いフローはわずか5千ドルを表す。この比例的な幅が、サンキーダイアグラムを非常に効果的にする決定的な特徴である。
- 値は、各フローの幅を決定する数値データである。これらは、システム内を移動するお金、エネルギー、人、またはあらゆる定量化可能なリソースを表すことができる。
- ドロップオフは、損失、廃棄物、またはターゲットノードに到達せずにシステムから出ていくリソースを表す特別なフローである。予算の例ではドロップオフは示されていないが、熱損失を示すエネルギー図や、プロセスを放棄する顧客を示すマーケティングファネルで見ることがあるかもしれない。
サンキーダイアグラムの作成方法
サンキーダイアグラムの作成には、好みのツールと技術的な習熟度に応じて異なるアプローチが必要である。同じ予算配分の例を、Excel、Python、Rを使用して説明するので、ワークフローと専門知識に最適な方法を選択できる。
Excelでのサンキーダイアグラム:AI vs 従来のアドイン
Excelにはネイティブのサンキーチャートタイプが含まれていないため、ユーザーは回避策を見つけなければならない。従来のアドイン方式と現代的なAI駆動のアプローチを比較してみよう。
AI駆動方式(Excelmaticを使用)
Excelでサンキーダイアグラムを作成する最も速く直感的な方法は、ExcelmaticのようなAIエージェントを使用することである。メニューを操作したりサードパーティソフトウェアをインストールしたりする代わりに、平易な言語でリクエストを述べるだけでよい。
プロセスは驚くほどシンプルだ:
- データファイルをアップロードする(各フローのソース、ターゲット、値が含まれているもの)。
- ニーズを述べる: 「このデータから予算配分を示すサンキーダイアグラムを作成して」のようなシンプルなプロンプトを入力する。
- チャートを取得する: Excelmaticがデータを分析し、瞬時にプロフェッショナルで正確なサンキーダイアグラムを生成する。

このアプローチは、アドインに関連する学習曲線を排除し、プロセス全体を自動化する。技術的なステップやコードの記述に煩わされることなく、迅速に複雑な可視化を生成する必要があるビジネスプロフェッショナルに理想的である。AIがチャート作成を処理するので、洞察に集中できる。
従来方式(アドインを使用)
手動アプローチを好む人の場合、サードパーティ製のアドインを使用する必要がある。ChartExpoは最も人気のあるオプションの一つだ。

ダイアグラムを作成する前に、データをソース-ターゲット-値の形式で構造化する必要がある。各行は1つのフロー接続を表さなければならない。
ChartExpoをインストールすれば、プロセスは簡単だ。まず、Microsoft AppSourceからアドインをインストールする。次に、データ範囲(ヘッダーを含む)を選択し、ChartExpoの可視化オプションからSankey Chartを選択する。アドインはソース、ターゲット、値の列を検出し、プレビューを提供して、チャートの作成とカスタマイズを可能にする。
比較: アドインは仕事をこなすが、インストール、手動でのデータ選択、別のインターフェースの操作が必要である。ExcelmaticのようなAIツールはこれを単一の会話ステップに合理化し、大幅に高速でユーザーフレンドリーにする。
Pythonでのサンキーダイアグラム
コーディングを好む人のために、PythonのPlotlyライブラリは、インタラクティブで高品質なサンキーダイアグラムを作成するための優れたオプションである。同じ予算配分データを使用して可視化を再現する。
ステップ1: データ準備
データをPlotlyが期待する形式に整理することから始める:ノード名のリスト、および各フローのソースインデックス、ターゲットインデックス、値を指定する配列。
import plotly.graph_objects as go
# ダイアグラム内のすべてのノードを定義
nodes = ["Annual Budget", "Marketing", "Operations", "R&D",
"Digital Ads", "Events", "Content", "Salaries",
"Office", "Utilities", "Software", "Equipment"]
# 接続を定義(ノードインデックスを使用)
source_indices = [0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3]
target_indices = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
values = [40, 35, 25, 25, 10, 5, 20, 10, 5, 15, 10]
インデックスはnodesリスト内の位置に対応するので、source_indices = [0, 0, 0]は最初の3つのフローが"Annual Budget"(位置0)から始まることを意味する。
ステップ2: 基本的なサンキー作成
PlotlyのSankeyオブジェクトを使用して、コアのダイアグラム構造を作成する。
fig = go.Figure(data=[go.Sankey(
node=dict(
label=nodes,
pad=15,
thickness=20
),
link=dict(
source=source_indices,
target=target_indices,
value=values
)
)])
これにより、デフォルトのスタイルで機能的なサンキーダイアグラムが作成される。padはノード間の間隔を制御し、thicknessはノードの四角形の表示幅を決定する。
ステップ3: スタイリングとカスタマイズ
色、改善されたレイアウト、プロフェッショナルな書式設定でダイアグラムを強化する。
# 色と透明度を追加
fig.update_traces(
node_color=["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728",
"#ff9999", "#ff9999", "#ff9999", "#90ee90",
"#90ee90", "#90ee90", "#ffcccb", "#ffcccb"],
link_color=["rgba(255, 127, 14, 0.4)", "rgba(44, 160, 44, 0.4)",
"rgba(214, 39, 40, 0.4)", "rgba(255, 127, 14, 0.6)",
"rgba(255, 127, 14, 0.6)", "rgba(255, 127, 14, 0.6)",
"rgba(44, 160, 44, 0.6)", "rgba(44, 160, 44, 0.6)",
"rgba(44, 160, 44, 0.6)", "rgba(214, 39, 40, 0.6)",
"rgba(214, 39, 40, 0.6)"]
)
# プレゼンテーションを改善するためにレイアウトを更新
fig.update_layout(
title="Annual Budget Allocation",
font=dict(size=16, family="Arial Black", color="black"),
width=900,
height=600
)
ステップ4: 表示とエクスポート
ダイアグラムを表示し、さまざまな形式で保存する。
fig.show() # Jupyter notebookまたはブラウザで表示
# エクスポートオプション
fig.write_html("budget_sankey.html") # インタラクティブなWebバージョン
fig.write_image("budget_sankey.png") # 静的画像
Rでのサンキーダイアグラム
RのnetworkD3パッケージは、インタラクティブでWeb対応のサンキーダイアグラムを作成するためのもう一つの強力なツールである。このアプローチは、ホバー効果やR Markdownとの簡単な統合などの組み込みインタラクティビティを提供する。
ステップ1: セットアップとデータ準備
まず、必要なパッケージをインストールしてロードし、データをnodesとlinksのデータフレームに構造化する。
# 必要なパッケージをインストール(一度実行)
install.packages(c("networkD3", "dplyr"))
# ライブラリをロード
library(networkD3)
library(dplyr)
# ノードデータフレームを作成
nodes <- data.frame(
name = c("Annual Budget", "Marketing", "Operations", "R&D",
"Digital Ads", "Events", "Content", "Salaries",
"Office", "Utilities", "Software", "Equipment")
)
# リンクデータフレームを作成(注:networkD3は0ベースのインデックスを使用)
links <- data.frame(
source = c(0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3),
target = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11),
value = c(40, 35, 25, 25, 10, 5, 20, 10, 5, 15, 10)
)
ステップ2: 基本的なサンキー作成
sankeyNetwork()関数を使用してダイアグラムを作成する。
# 基本的なサンキーダイアグラムを作成
sankey_plot <- sankeyNetwork(
Links = links,
Nodes = nodes,
Source = "source",
Target = "target",
Value = "value",
NodeID = "name",
units = "K USD"
)
# プロットを表示
sankey_plot
これにより、ユーザーがフローの上にホバーしたり、ノードをドラッグしてレイアウトを再編成したりできるインタラクティブなダイアグラムが生成される。
ステップ3: カスタマイズとスタイリング
色、サイズ変更、その他の書式設定オプションでダイアグラムを強化する。
# カスタマイズを加えた高度なサンキー
(sankey_advanced <- sankeyNetwork(
Links = links,
Nodes = nodes,
Source = "source",
Target = "target",
Value = "value",
NodeID = "name",
units = "K USD",
fontSize = 14,
fontFamily = "Arial",
nodeWidth = 30,
nodePadding = 20,
margin = list(top = 50, right = 50, bottom = 50, left = 50),
height = 600,
width = 900
))
ステップ4: エクスポートと統合オプション
インタラクティブなダイアグラムを自己完結型のHTMLファイルとして保存する。
# HTMLファイルとして保存
library(htmlwidgets)
saveWidget(sankey_advanced, "budget_sankey.html", selfcontained = TRUE)
# 静的画像エクスポート用(オプション - webshot2パッケージが必要)
install.packages("webshot2")
library(webshot2)
webshot("budget_sankey.html", "budget_sankey.png", vwidth = 900, vheight = 600)

この結果のダイアグラムは、PythonとExcelのバージョンと同じ視覚的洞察を提供するが、ユーザーがデータをより徹底的に探索するのに役立つ組み込みの