ピボットテーブルでトレード記録を集計|銘柄×売買・月別の損益と勝率

トレード記録の銘柄別・月別の損益は、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」の形にしました。

ピボットテーブルの作り方

  1. テーブルの中のセルを選び、[挿入]→[ピボットテーブル]を選ぶ
  2. 置き場所に新しいワークシートを選んで作成する
  3. [ピボットテーブル フィールド]のウィンドウで、フィールドを[行][列][値]の領域へドラッグする
  4. 集計の方法を変える時は、[値]の領域のフィールドの右の矢印から[値フィールドの設定]を開き、集計の方法(合計・個数・平均など)を選ぶ

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の集計の方法を確かめたものです。売買の判断や成績の評価を示すものではありません。