ピボットテーブルでトレード記録を集計|銘柄×売買・月別の損益と勝率
トレード記録の銘柄別・月別の損益は、SUMIFSの式でも出せますが、ピボットテーブルを使うと、式を書かずに、ドラッグで集計の切り口を変えられます。この記事では、Excelでトレード記録を集計する関数と同じ架空の30件の記録で、ピボットテーブルを2つ作り、SUMIFSで出した値と一致するかを確かめた結果を紹介します。
(確認:Microsoft 365 Excel(バージョン16.0、ビルド20430)で、2026年10月21日に作成。ピボットテーブルの作成と値の読み取りは、Excelを操作するプログラム(Python・pywin32)で行い、表示された文字列をそのまま記録しました。メニューの名前は、Microsoftの日本語のサポートページの表記と、インストールされているExcelの日本語の文字列(リソース)で確かめたものです。記録は乱数で作った架空のもので、実際の取引ではありません)
準備:記録をテーブルにして、補助の列を2つ足す
A列に決済日、B列に銘柄、C列に売買、D列にロット、E列に損益を入れた30件を、テーブル(名前は「トレード」)にします。そのうえで、次の2列を足します。
| 列 | 見出し | 式(テーブルの1行目に入れると全行に広がる) | 使い道 |
|---|---|---|---|
| F | 月 | =TEXT([@決済日],"yyyy/mm") |
月ごとにまとめる |
| G | 勝ち | =IF([@損益]>0,1,0) |
平均を取ると勝率になる |
テーブルにしておくと、記録を下に足した時に、ピボットテーブルの元の範囲も一緒に広がります。月の列は、日付をそのまま行に置いて自動でまとめる方法もありますが、この記事では、結果が読みやすいように文字の「2026/08」の形にしました。
ピボットテーブルの作り方
- テーブルの中のセルを選び、[挿入]→[ピボットテーブル]を選ぶ
- 置き場所に新しいワークシートを選んで作成する
- [ピボットテーブル フィールド]のウィンドウで、フィールドを[行][列][値]の領域へドラッグする
- 集計の方法を変える時は、[値]の領域のフィールドの右の矢印から[値フィールドの設定]を開き、集計の方法(合計・個数・平均など)を選ぶ
Microsoftのサポートページには、値の領域に置いた数値のフィールドは既定で合計(SUM)になり、Excelがデータを文字列と解釈すると個数(COUNT)になる、と書かれています。損益の列に文字列の数字が混ざっていると、合計ではなく個数が出るので、その場合はSUMIFSの記事の「合計が0になる時」と同じ直し方をします。
1つ目:銘柄×売買の損益
[行]に銘柄、[列]に売買、[値]に損益(合計)を置いた結果です。
| 行ラベル | 買い | 売り | 総計 |
|---|---|---|---|
| EURUSD | 7,000 | -14,000 | -7,000 |
| GBPJPY | 35,000 | 37,000 | 72,000 |
| USDJPY | -16,000 | 8,000 | -8,000 |
| 総計 | 26,000 | 31,000 | 57,000 |
「総計」の列は、SUMIFSで出した銘柄別の値(EURUSD −7,000・GBPJPY 72,000・USDJPY −8,000)と一致しました。ピボットテーブルでは、売買の列が加わることで、たとえばUSDJPYは買いで−16,000、売りで+8,000と、どちらで負けているかが1つの表で見えます。
2つ目:月別の損益・取引数・勝率
[行]に月、[値]に損益(合計)・損益(個数)・勝ち(平均)の3つを置いた結果です。値の見出しは、既定では「合計 / 損益」「平均 / 勝ち」のような名前になります(筆者の環境で確認)。下の表では、読みやすいように「損益の合計」「取引数」「勝率」と名前を付けています。
| 行ラベル | 損益の合計 | 取引数 | 勝率 |
|---|---|---|---|
| 2026/08 | 7,000 | 16 | 0.625(62.5%) |
| 2026/09 | 50,000 | 14 | 0.6428…(64.3%) |
| 総計 | 57,000 | 30 | 0.6333…(63.3%) |
月別の合計(8月 7,000・9月 50,000)と、全体の勝率(63.3%)も、SUMIFS・COUNTIFの記事の値と一致しました。勝ちの列(1か0)の平均が勝率になるのは、1の数を件数で割るのと同じ計算だからです。表示を%にするには、[値フィールドの設定]の[表示形式]で変えます。
確かめ方:件数と総計を、式の結果と照らす
ピボットテーブルは、元のデータの読み込み方で結果が変わります。筆者の検証では、最初にプログラムからExcelへ日付を渡した時、時差の扱いで日付が1日前にずれ、9月1日の取引が8月に入って、8月が17件・−11,000になりました。件数(30件のうち8月が16件)と、SUMIFSで出した月別の値に照らしたことで、ずれに気づけました。外から取り込んだ記録をピボットテーブルにする時は、次の2つを先に確かめておくと安心です。
- 総計の件数が、元の記録の件数と同じか
- どれか1つの切り口(銘柄別など)が、SUMIFSなどの式の結果と同じか
記録を足した後の更新
Microsoftのサポートページには、データの元に新しいデータを足した場合、ピボットテーブルを最新の情報に更新する必要がある、と書かれています。1つだけなら、ピボットテーブルの中で右クリックして[更新]、複数あるなら、リボンのピボットテーブル用のタブにある[更新]の矢印から[すべて更新]を選びます(タブの名前は、この記事では確かめていません)。更新しないと、足した記録が集計に入りません。
この記事で確かめていないこと
- Mac版のExcelやWeb版のExcelでの画面と動き
- 日付を行に置いた時の自動のまとめ方(月・四半期など)の細部
- MT5から書き出した取引履歴をそのまま使う方法(列の形が違うため、別の整え方が要る)
最大ドローダウンの式はExcelで最大ドローダウンを計算する式に、Excelの集計をどこまで覚えるか・MOSを受けるかの判断はトレード記録をExcelで集計する力とMOSにまとめています。ピボットテーブルは、MOSではExcel 365 エキスパートの出題範囲です(MOSの科目とレベルの選び方)。
まとめ
- 記録をテーブルにして、「月」と「勝ち(1か0)」の列を足すと、ピボットテーブルで月別の損益・取引数・勝率まで出せる
- 架空の30件で、銘柄別・月別・全体の値は、SUMIFSの式の結果とすべて一致した
- 取り込んだ記録は、件数と1つの切り口を式の結果と照らしてから使う。記録を足したら[更新]する
本記事は、架空の記録でExcelの集計の方法を確かめたものです。売買の判断や成績の評価を示すものではありません。

