筋トレの記録をスプレッドシートで作るとき、最初に決めるのは1つだけです。1行に1セットを書く。この形にしておけば、週ごとの総負荷量も、種目別の最高重量も、あとから関数とピボットテーブルで取り出せます。逆に日付を横方向へ足していく形にすると、記録は溜まるのに集計だけができない表になります。ここから、そのまま写せる列構成と、作っておく集計3つ、そしてスプレッドシートでは埋まらない部分を順に書きます。

最初に決めるのは「1行1セット」

配布されている筋トレ用のシートを見ると、多くは日付を横に並べる形になっています。左端に種目名を置き、1週目・2週目……と右へ列を足していく作りです。書くぶんには自然ですが、この形には決定的な弱点があります。

列が増え続けるので、集計の式が毎回壊れます。 3か月ぶんの合計を出そうとすると、対象の列を手で指定し直すことになります。種目を1つ増やすたびに行を挿入し、書式をコピーする作業も発生します。

スプレッドシートの集計機能は、同じ意味のデータが縦に積まれていることを前提に作られています。ピボットテーブルの公式ヘルプが「列ごとに見出しを付ける必要があります」と最初に書いているのは、1行目を見出し、2行目から下をデータとして扱うためです。

なので、こう決めます。

  1. 1行に1セットぶんだけ書く― ベンチプレスを3セットやったら3行になります

  2. 日付も種目名も、毎行に書く― 同じ日の行に同じ日付が3回並んでも構いません。むしろそれが正しい形です

  3. 列は増やさない。行だけが下に伸びていく― 半年経っても列は9つのままです

見た目は素っ気なくなります。ただ、この形にしておくと、あとから「週ごとの合計」も「種目ごとの最高重量」も「部位ごとの配分」も、同じ1枚の表から取り出せます。見るための表は、記録用の表とは別に作るというのが基本の考え方です。

列は9つ作り、埋めるのは5つでいい

最初から全部の欄を埋めようとすると続きません。列は9つ用意しておきつつ、実際に入力するのは5つだけにします。

必ず埋める5列
見出し入れるもの
A日付トレーニングした日2026-08-08
C種目名種目の名前。表記は必ず固定するベンチプレス
Dセット番号その種目の何セット目か1
E重量(kg)扱った重量。数値だけを入れる60
F回数挙げた回数。数値だけを入れる8

B列は次の表のとおり空けておきます。「60kg」のように単位を付けて入力するとセルが文字列になり、合計も最大値も計算できません。単位は見出し側に書いておきます

残りの4列は、作るだけ作って空のままにします。

作っておくが、空のままでいい4列
見出し入れるもの
Bワークアウト名その日のメニューの名前。「プッシュの日」など
Gセット種別ウォームアップ、ドロップセットなどの区別
HRPEそのセットのきつさ。使わないなら空のまま
Iメモフォームの気づき、体調、使ったマシンの番号など

この9列の並びは LiftLog が書き出す CSV の1行目(date / workout_name / exercise_name / set_number / weight / reps / tag / rpe / notes)と同じ順序にしてあります。揃えておくと、あとで書き出したCSVをそのまま下に貼り足せます

順番をアプリのCSVに合わせているのには理由があります。スプレッドシートで始めた人がのちに記録アプリへ移っても、あるいは併用しても、列の並びが同じなら過去の記録と新しい記録を1枚のシートにまとめられるからです。B列を空けたまま使うのは少し不自然に見えますが、あとで貼り付ける側の手間が消えます。

計算のための列を3つ足す

ここまでが入力する列です。J列から右は、式を入れて自動で埋まる列にします。

足しておくと集計が一気に楽になる3列
出すもの2行目に入れる式
J総負荷量(重量 × 回数)=E2*F2
K推定1RM(Epley式)=E2*(1+F2/30)
Lその週の月曜日=A2-WEEKDAY(A2,2)+1

2行目に入れてから下の行へコピーします。推定1RMをBrzycki式で出したい場合は =E2*36/(37-F2) です。WEEKDAY の第2引数に 2 を渡すと月曜日が 1 になるので、日付から週の始まりを逆算できます(Google ドキュメント エディタ ヘルプ)

推定1RMのEpley式は、1985年にボイド・エプリー氏が発表した式です。重量に「1 + 回数 ÷ 30」を掛けるだけなので、セルには重量のセルと回数のセルを指定して書きます。Brzycki式は1993年にマット・ブジッキ氏が学術誌で発表した式で、重量に36を掛けて「37 − 回数」で割ります。どちらも実測値ではなく推定で、回数が多いセットほど2つの式の差が開きます。差そのものが推定の幅だと考えて、片方だけを信じないほうが安全です。

1RM計算機重量と回数から最大挙上重量を推定できます。Epley式・Brzycki式の両方と%1RM換算表つき(登録不要)

集計は3つ作れば足りる

列ができたら、見るための表を作ります。作るのは3つで足ります。

週ごとの総負荷量

いちばん使うのがこれです。L列(その週の月曜日)とJ列(総負荷量)が揃っていれば、ピボットテーブルで数十秒です。

  1. 表の中のセルを1つ選ぶ

  2. 上部のメニューで「挿入」→「ピボット テーブル」をクリックする― 公式ヘルプが「列ごとに見出しを付ける必要があります」と書いているとおり、1行目の見出しは必須です

  3. サイドパネルの「行」の横にある「追加」から「その週の月曜日」を選ぶ

  4. 「値」の横にある「追加」から「総負荷量」を選ぶ― 集計方法は合計(SUM)のままで構いません

  5. 種目別や部位別に分けたいときは「列」にも項目を足す

関数で出すこともできます。公式ヘルプに載っている構文は SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2, ...]) で、条件は「条件範囲と条件」の組で何組でも足せます。

関数で出す場合の書き方(9列構成が前提)
出したいもの読み方
ある週の総負荷量=SUMIFS(J:J, L:L, N2)N2に週の月曜日を入れておくと、その週のJ列だけを合計する
ある週のベンチプレスの総負荷量=SUMIFS(J:J, L:L, N2, C:C, "ベンチプレス")条件の組を足すだけで絞り込みが増える
ベンチプレスの最高重量=MAXIFS(E:E, C:C, "ベンチプレス")C列がベンチプレスの行から、E列の最大値を返す
ベンチプレスの推定1RM最高値=MAXIFS(K:K, C:C, "ベンチプレス")同じ考え方でK列の最大値を見る

MAXIFS の構文は MAXIFS(範囲, 条件範囲1, 条件1, [条件範囲2, 条件2, …])。種目名を式に直接書かず、別のセル(例: N3)に置いて =MAXIFS(E:E, C:C, N3) の形にしておくと、種目を打ち替えるだけで使い回せます

種目別の最高記録

上の表の下2行がそのまま使えます。種目名を縦に並べた小さな表を別に作り、その右にMAXIFSを置くと、自己ベストの一覧ができあがります。重量の最高値と、推定1RMの最高値の2列を並べておくと、重量が横ばいでも回数が伸びている期間を見落とさずに済みます。

推移のグラフ

グラフは、記録用の表から直接作らないほうがうまくいきます。1行1セットの表には全種目が混ざっているためです。ピボットテーブルで「行=日付、列=種目名、値=推定1RMの最大」という表を作り、その集計結果の範囲を選んでグラフを挿入します

種目が多くて1つずつグラフを作るのが面倒なら、SPARKLINE関数が使えます。1つのセルの中にミニグラフを描く関数で、構文は SPARKLINE(データ, [オプション]) です。種目名を縦に並べた一覧の右隣に置くと、種目ごとの推移が一覧のまま見渡せます。

特定の種目だけを時系列で追いたいだけなら、集計を作らずフィルタで絞り込むのがいちばん速いです。1行1セットで持っていれば、種目名の列で絞るだけでその種目の履歴になります。

入力を軽くする3つの設定

作った直後のシートは、ジムで使うには重いままです。手を入れるのは3か所だけで変わります。

種目名はプルダウンにする。 手打ちだと表記がぶれます。「ベンチプレス」と「ベンチ プレス」は集計上まったく別の種目として扱われるので、MAXIFSもピボットテーブルも噛み合わなくなります。パソコンなら「挿入」→「プルダウン」、または「データ」→「データの入力規則」→「ルールを追加」から設定できます。自分がやる種目を20個ほど登録しておけば、以降は選ぶだけです。

日付は毎回打たない。 同じ日の行が続くので、1行目に入れた日付のセルをコピーして、その日のぶんの行にまとめて貼ります。打ち込むのは1日1回で済みます。

触る列を隣り合わせにしておく。 9列構成では重量(E列)と回数(F列)が隣です。スマートフォンの画面では横スクロールが起きるので、毎回触る2つが隣にあるかどうかで手数が変わります。列の順番を勝手に入れ替えないほうがいい理由の1つです。

そもそも記録する項目自体を削る話は、筋トレの記録がめんどくさい人へに分けて書いています。スプレッドシートでも考え方は同じで、埋める欄が少ないほど続きます。

スプレッドシートで埋まらない4つ

自由度と引き換えに諦めることがあります。ここを知らずに始めると、2週間で止まります。

前回の記録が出てこない。 記録アプリの入力画面は「前回: 60kg × 8回」を自動で出しますが、スプレッドシートは自分で上にスクロールして探すか、関数を組むことになります。セットの合間にこれをやるのは、思っているより負担です。VLOOKUPやXLOOKUPで直前の値を引く仕組みは作れますが、そこまで組むなら記録アプリを使うほうが早い、という判断になりがちです。

レストタイマーがない。 休憩を測る機能はないので、別のタイマーアプリと行き来します。セット完了と同時に測り始める作りにはできません。

集計はパソコンで開く前提になる。 ピボットテーブルの公式ヘルプは、iPhone と iPad 向けのページにも Android 向けのページにも「ピボット テーブルを使用するには、パソコンで sheets.google.com にアクセスしてください。」と書いています。つまり、いちばん強力な集計機能はスマートフォンのアプリでは扱えません。関数とフィルタはスマートフォンでも動くので、集計をどうしてもスマートフォンで完結させたいなら、ピボットテーブルを使わずSUMIFSとMAXIFSで組む形になります。

スマートフォンの画面に9列は収まりません。 横スクロールしているうちに、いま何行目を触っているのか分からなくなります。1行目の見出しを固定しておくと多少ましになりますが、アプリの入力画面と同じ快適さにはなりません。

裏返すと、自由度は表計算ソフトのほうが上です。 列を自分で決められるので、アプリに用意されていない指標をそのまま持てます。自分で組んだプログラムの目標セット数、種目ごとの調子の点数、使ったマシンの番号、特殊な補助種目。どれも列を1つ足すだけで記録できます。アプリ側の仕様変更に影響されないのも利点です。この使い分けはPCで使える筋トレ記録アプリにも整理してあります。

なお費用については、Excelはブラウザ版をMicrosoftアカウントで無料で使えると公式に案内されています。Googleスプレッドシートも、Googleアカウントがあればブラウザから使えます。

アプリの記録をCSVで流し込む

スプレッドシートと記録アプリは、どちらかを選ぶものではありません。入力はアプリ、集計はスプレッドシートという併用がいちばん現実的です。

多くの記録アプリはCSVの書き出しに対応していて、書き出したファイルは表計算ソフトでそのまま開けます。LiftLogの場合は、設定画面の「データのエクスポート」から「ワークアウトデータをダウンロード」を押すと liftlog-export.csv が落ちてきます。1セットが1行で、日付・ワークアウト名・種目名・セット番号・重量・回数・セット種別・RPE・メモの9列。BOM付きで書き出しているので、Excelでそのまま開いても日本語が化けません。対象は完了したワークアウトの完了したセットだけで、体重・栄養・テンプレート・AIとの会話は含まれません。画面ごとの手順はLiftLog Web版の使い方にまとめています。

この記事の9列構成は、このCSVと同じ並びにしてあります。ですので、CSVを開いて2行目から下をコピーし、自分のシートの末尾に貼るだけで統合できます。貼ったあとにJ列・K列・L列の式を下までコピーすれば、総負荷量も推定1RMも週の始まりも埋まります。

まとめ

  • 表の持ち方は1行1セット。日付を横に伸ばす形にすると、集計の式が毎回壊れる
  • 列は9つ作り、埋めるのは日付・種目名・セット番号・重量・回数の5つでいい
  • 重量と回数は数値だけを入れる。単位を書くと文字列になって計算できない
  • 計算列は総負荷量・推定1RM・その週の月曜日の3つ。ここから集計がすべて出る
  • 集計は週ごとの総負荷量・種目別の最高記録・推移のグラフの3つで足りる
  • 埋まらないのは前回値の表示・レストタイマー・スマホでの集計と視認性。自由度は表計算のほうが上
  • 記録アプリのCSVと列の並びを揃えておけば、あとから貼り足して併用できる