SBI証券のポートフォリオをSunburst Chartに表示する方法
ポートフォリオのバランスをグラフで確認するために、SBI証券のポートフォリオ画面からCSVファイルをダウンロードし、Sunburst Chart(サンバーストグラフ,マルチレベル円グラフ)にする方法をExcelとPower BIで試しました。
1. 元データ
1) ポートフォリオのCSVファイル(New_file.csv)
SBI証券にログインし、上部の[ポートフォリオ]ボタンをクリックすると、ポートフォリオが表示されます。上の方に[CSVダウンロード]のリンクからNew_file.csvをダウンロードします。![]()

2) ファンド名の短縮変換表(Fund.xlsx)
CSVファイルのファンド名は長いので、短い名前に変換する表をExcelで作成します。テーブル名をTFundにしてください。
(1) ファンド名:CSVファイルのファンド名。(例:SBI-SBI・V・S&P500インデックス・ファンド)
(2) 銘柄:グラフに表示するファンド名。(先頭に表示番号を付ける)(例:2S&P500)
(3) 区分:ファンドの分類(先頭に表示番号を付ける)。(例:1日本、2米国、3先進国、4新興国、5その他)
(4) 順:表の並び順![]()
※ アプリ版Excelが無い場合は、無料の①Web版Excel、②LibreOffice calc、③Googleスプレッドシートを使用するなどの方法があります。④メモ帳でCSVを作成することもできます(CSVの場合は、後述のTFundクエリのソースをCSVに変更してください。)。
Web版Excel:https://excel.cloud.microsoft/ja-jp/
Libre Office:https://ja.libreoffice.org/
※ ①③は、Microsoft、Googleのサーバーにデータが入ります。米国では、NSL(National Security Letter)により、FBIが情報取得をすることが可能です。
※ Power BIの[データの入力]で直接表を作成することもできます。但し、ExcelのPower Queryで取り込むことはできません。
2. Power QueryによるCSVファイルの整形
Excel または Power BI の Power Query で、CSVファイルをグラフ化できる表に整形します。(コードは、下記5.参照)
※ デスクトップ版のExcelは有料ですが、Power BI Desktopは無料でPower Queryを使えます。
Power BI:https://www.microsoft.com/ja-jp/power-platform/products/power-bi/downloads
1) Excel Pivot Graph の Pie Chart
Pivot GraphではSunburstを選択できないので、Pie Chartにしました。
グラフ表示の自由度は最も高いです。
(1) データラベル
○ 分類名、値、パーセンテージ、引き出し線を表示できる。
○ 表示位置を中央、内側外部、外部、自動調整に選択できる。手動で任意の位置に移動可能。
△ 手動
(2) 表示順
△ 元表の表示順。
(3) その他
× Sunburstではないので、区分の表示が無い。
2) Excel Sunburst
ピボットテーブルを参照する別表を作成すると、Sunburstが使えます。
(1) データラベル
△ 分類名、値のみ表示できる。(系列名も表示できるが、本例では意味が無い。)
△ 表示位置は内側のみ。
△ グラフ色に応じて文字色が変わるが、一度手動設定すると自動にならない。
(2) 表示順
× 値の大きい順で固定。
3) Power BI Desktop Microsoft Sunburst
(1) データラベル
× 分類名固定、値表示なし(ツールヒントのみ)
× 中央固定
× 黒固定
(2) 表示順
○ グループを指定し昇順降順選択可。
Microsoft Sunburst:https://appsource.microsoft.com/ja-jp/product/power-bi-visuals/wa104380767
3) Power BI Desktop MAQ Sunburst
(1) データラベル
△ 最外周のみCategory,Data,%表示可。
△ 外部固定
○ 背景により自動設定。コントラストが自動で付くので見やすい。
(2) 表示順
× 値の大きい順
https://appsource.microsoft.com/en-us/product/power-bi-visuals/wa200000097
https://maqsoftware.com/Marketplace-Offers/Power-BI-custom-visuals/Sunburst.html
4) 各Sunburst共通
値にMeasure(DAX)を設定しても、Categoryの値がSubcategoryの値の単純な足し算になり、Measure(DAX)の値になりません。
%の足し算は単純な足し算にはならないですが、Sunburst Chartのグラフ表示範囲は単純足し算なので当然とも言えます。
%を表示する場合は、Sunburstを使用すべきではないのでしょう。
4. 感想
SunburstはPie Chartに比べて設定できる項目が少なく、満足できるものが無いです。
現状ではMAQ Sunburstがベターです。MAQで値以外のSortが選べるととても良くなるのですが、無料なので期待できないですね。
Microsoftには、Pie Chart並みの機能実装を望みたいです。Power BIにも標準装備して欲しいですね。
5. SBI証券のポートフォリオを取り込むPower Query Mのコード
(下記のPower Query Mのコードは、殆どクリック操作だけで生成しています。VBAのようなプログラミングの知識は殆ど不要です。)
■ Exce:[データ]-[データの取得]-[その他のデータソースから]-[空のクエリ]-[詳細エディタ]に下記コードを貼り付けて[完了]、[閉じて読み込む▼]-[閉じて次に読み込む]でピボットテーブルに表示してください。
■ Power BI:[ホーム]-[データの変換]-[新しいソース]-[空のクエリ]-[詳細エディタ]に下記コードを貼り付けて[完了]、[閉じて適用▼]-[閉じて適用]でレポートビューに戻ります。視覚化のその他のビジュアルの取得でSunburstを検索して、[Add/CTA_ADD]してください。Sunburstをレポートに追加し、Excelのピボットテーブルと似たような要領で、表示する項目をドラッグしてください。
1) New_file クエリ
let
ソース = Csv.Document(File.Contents("C:\Users\Public\Documents\New_file.csv"),[Delimiter=",", Columns=11, Encoding=932, QuoteStyle=QuoteStyle.None]),
追加されたカスタム = Table.AddColumn(ソース, "預り", each if Text.Contains([Column1],"投資信託(金額/") then Text.BeforeDelimiter(Text.BeforeDelimiter(Text.AfterDelimiter([Column1],"/"),")"),"(") else null),
下方向へコピー済み = Table.FillDown(追加されたカスタム,{"預り"}),
削除された最初の行 = Table.Skip(下方向へコピー済み,7),
昇格されたヘッダー数 = Table.PromoteHeaders(削除された最初の行, [PromoteAllScalars=true]),
変更された型1 = Table.TransformColumnTypes(昇格されたヘッダー数,{{"ファンド名", type text}, {"買付日", type text}, {"数量", type text}, {"取得単価", type text}, {"現在値", type text}, {"前日比", type text}, {"前日比(%)", type text}, {"損益", type text}, {"損益(%)", type text}, {"評価額", type text}, {"", type text}, {"特定預り", type text}}),
フィルターされた行 = Table.SelectRows(変更された型1, each Text.Contains([買付日], "/")),
#"名前が変更された列 " = Table.RenameColumns(フィルターされた行,{{"特定預り", "預り"}}),
削除された列 = Table.RemoveColumns(#"名前が変更された列 ",{"", "買付日", "前日比", "前日比(%)"}),
変更された型 = Table.TransformColumnTypes(削除された列,{{"数量", type number}, {"取得単価", type number}, {"現在値", type number}, {"損益", type number}, {"損益(%)", type number}, {"評価額", type number}}),
マージされたクエリ数 = Table.NestedJoin(変更された型, {"ファンド名"}, TFund, {"ファンド名"}, "TFund", JoinKind.LeftOuter),
#"展開された TFund" = Table.ExpandTableColumn(マージされたクエリ数, "TFund", {"区分", "順", "銘柄"}, {"区分", "順", "銘柄"}),
並べ替えられた行 = Table.Sort(#"展開された TFund",{{"順", Order.Ascending}})
in
並べ替えられた行
※ 投資信託しか対応していませんが、クエリを修正すれば株や債券などにも対応できると思います。
2) TFund クエリ
let
ソース = Excel.Workbook(File.Contents("C:\Users\Public\Documents\Fund.xlsx"), null, true),
TFund_Table = ソース{[Item="TFund",Kind="Table"]}[Data],
変更された型 = Table.TransformColumnTypes(TFund_Table,{{"ファンド名", type text}, {"銘柄", type text}, {"区分", type text}, {"順", Int64.Type}})
in
変更された型
6. Measure(DAX)
複数のファンドを合計した損益率を求めるメジャーです。Sunburstでは合計表示ができないので、Pie ChartやピボットテーブルやMatrixなどで表示します。
損益率% = (1/(1-SUM('New_file'[損益])/SUM('New_file'[評価額]))-1)*100
7. 無料でPower Query、DAXを使用する方法
無料版Power BI Desktopで、Power QueryやDAXが使えます。
Power BI:https://www.microsoft.com/ja-jp/power-platform/products/power-bi/downloads
■ インストール方法:2つの方法があります。
(1) ダウンロード⇒Microsoft Storeからインストール:更新が自動になります。
(2) 高度なダウンロードオプション⇒インストーラをダウンロードして実行:更新が手動になります。
■ 無料版の制限:
- Power Pointに貼ったものを他人に見せることができません。[*]
- クエリの結果を戻したExcelを他人に見せることができません。[*]
このように他人と共有ができないので、仕事では有料版が必要になります。
[*]:Power PointやExcelには、クラウド(Microfoft FablicのOneLake)に発行されたPower BIのデータ(レポートとデータモデル)へのリンクが貼られますが、このリンクを他人が見ることができません。
Microsoft Fablic:https://www.microsoft.com/ja-jp/microsoft-fabric
Power BIで作成した.pbixを他人が見ることは可能です。
.pbix内のレポートやデータモデルを直接OLEなどで他のOfficeファイルに貼ることはできません。
8. サンプルファイル:上記説明のものとは少し異なります。
1) 上記ファイルを「C:\Users\Public\Documents\」に展開してください。
C:\Users\Public\Documents\SBIratio\の下に下記ファイルが展開されます。
(1) New_file.csv
SBI証券のポートフォリオのサンプルCSVファイルです。自分のファイルで上書きしてください。
(2) SBIratio.xlsx
自分が使用する区分とファンド名の設定をしてください。
'Fund'シート:CSVファイルの中のファンド名に書き換えてください。
※ 前記説明のクエリでは「Fund.xlsx」を使用していますが、サンプルファイルは「SBIratio.xlsx」を使用しています。
'Category'シート:自分が希望する区分に書き換えてください。
'PieF',PieC'シート:Excel Power Query, Power Pivotによる円グラフです。
(3) SBIratio.pbix:Power BIのファイルです。ビジュアルはお好みに応じて変更してください。
2) [更新]をクリックするとデータが更新されます。
9. 余談
■ Excel
Excelの利点に、使用者が多く情報が豊富であること、モダンExcelによるデータベース操作があると思います。しかし、個人で使うには高価です。そこで、無料のWeb版ExcelとPower BIの組合せは良い組合せのように思えます。これらの知識は仕事でも役立ちます。
Googleスプレッドシートも良いのですが、会社がExcelだと学んだことが仕事に役立ちません。
■ 画面サイズ
スマホや小型タブレットだけでExcelを使っている人を見かけることが少し気になります。オクターブシフトのついた1オクターブのキーボードを使用しているイメージです。使えないことは無いですが、作業効率が悪くてストレスが溜まります。
個人的にはFHDの文字サイズ100%が丁度良いサイズだと思います。WQHDに1ウィンドウ表示は大きすぎるので、マルチモニタの方が良いかもしれません。
■ 関連記事
SBI証券の投資信託のCSVファイルから損益推移グラフを作成:https://bigarrow.tea-nifty.com/blog/2025/01/post-d12b13.html


















最近のコメント