💪

Looker Studio / GAS + LINE Bot で趣味のトレーニングを効率的に可視化した

に公開

Looker Studio / Google スプレッドシート / Google Apps Script / LINE Bot で趣味のトレーニングを可視化した

こんにちは、Rehab for JAPAN の ui です。
今回は Looker Studio を使って、趣味のトレーニングの記録を可視化した事例を紹介します。

全体構成図

なぜ可視化するのか?

私のトレーニングの目的は筋肥大です。 デカくなりたいです。
そのためには progressive overload(漸進性過負荷の原則) に則り、トレーニングボリュームを徐々に上げていくことが重要になります。

ボリュームを増やすには、まず 現状のトレーニングボリュームを把握すること が必要です。
自分の使い心地の良い入力インタフェースを追求すると既存のアプリや手書きのノートでは満足できませんでした。
「記録」と「可視化」の環境を徐々に作っていきました。


テーブル定義

まず記録用のデータソースは Google スプレッドシート(以下 GSS)を作成しました。

training_log シート

  • 日付: トレーニングした日
  • 種目: トレーニング種目
  • 回数: reps
  • セット
  • ウェイト
  • total volume: GSS で計算(回数✖️セット✖️ウェイト)
  • 箇所: どの部位か(GSSでマスタを作り、種目から紐づけ)
  • 月週: GSSで計算(日付から算出)

イメージ


Looker Studio の設定

そのうちに、グラフなどで見やすくしたい。という欲求が出てきたため
training_log シートをデータソースにして、以下のグラフを作成しました。

月単位の Total Volume グラフ

Looker Studio にはデータソース項目を内部で編集できる機能があります。
それを活用して月ごとのボリュームを集計しました。

  • ディメンション: month(フィールド追加)
DATETIME_TRUNC(日付, MONTH)
  • 指標: sumtotalvolume(フィールド追加)
SUM(totalvolume)

部位ごとの月単位 Total Volume グラフ

「今月は胸を強化したい」「先月は脚が少なかった」などを把握するために、部位別集計も追加しました。
フィルタ機能 を利用します。

  • ディメンション: 箇所
  • 内訳ディメンション: month
  • 指標: sumtotalvolume
  • フィルタ例: 胸

イメージ


7月に肘を痛めてボリューム下がってるなぁ〜🤔など振り返りができます。

GitHub ライクなトレーニング頻度ヒートマップ

トレーニング頻度をわかりやすくするため、GitHub の草(ヒートマップ)風に可視化しました。

  • グラフ種類: ピボットテーブル
  • ディメンション: 箇所
  • 行のディメンション: 月週
  • 列のディメンション: 曜日
CASE
  WHEN DAYOFWEEK(日付) = 0 THEN "0:日"
  WHEN DAYOFWEEK(日付) = 1 THEN "1:月"
  WHEN DAYOFWEEK(日付) = 2 THEN "2:火"
  WHEN DAYOFWEEK(日付) = 3 THEN "3:水"
  WHEN DAYOFWEEK(日付) = 4 THEN "4:木"
  WHEN DAYOFWEEK(日付) = 5 THEN "5:金"
  WHEN DAYOFWEEK(日付) = 6 THEN "6:土"
  ELSE ""
END

曜日を 0〜6 の数字のままではわかりにくいので、 "0:日" などに変換しています。
ただし単純に「日」「月」だけにすると並べ替えができないため、数値+曜日の形式にしました。

  • 指標: COUNT_DISTINCT(日付)
  • フィルタ: 脚
  • 並べ替え:
    • 行番号1: 月週
    • 列番号1: 曜日
  • 条件付き書式: 値が 1 の場合は黄緑に設定

イメージ

週3~4をキープしている


LINE Bot + GAS

最後に、gssへの入力の手間を削減するため、トレーニング中にとっていたメモを入力テキストとして
Google Apps Script(GAS)で解釈し、GSSに転記する仕組みを作成しました。
Webアプリとして公開し、LINE Bot から呼び出しています。

入力フォーマットは以下の通りです。

1行目: 日付 
2行目以降: トレーニング内容

### トレーニング内容のルール 
種目 {ウェイト}{回数}-{回数}...
ウェイトが変わる場合はスペースを空ける

例えば次の入力:

8/29
ラットプルダウン 45kg15 50kg13 54kg11-10

GSS には以下のように登録されます。

8/29, ラットプルダウン, 15, 1, 45
8/29, ラットプルダウン, 13, 1, 50
8/29, ラットプルダウン, 11, 1, 54
8/29, ラットプルダウン, 10, 1, 54

LINE Bot 側のエンドポイントとして、この GAS を設定しました。

イメージ

Looker Studioの全体イメージ


👉 全体的に「記録 → データ化 → 可視化 → フィードバック」という流れを整え、トレーニングのモチベーションも大きく向上しました。

最後に

今回紹介した仕組みは、

  • 入力のハードルを下げる(LINE Bot + GAS)
  • データを整理する(GSS)
  • 成果を見える化する(Looker Studio)

という流れで、トレーニング管理をより楽にしました。
同じように趣味や学習の記録にも応用できるので、ぜひ試してみてください。

筋トレには不思議な魅力があり、生涯の趣味としても最適です。
また、これは弊社で掲げているテーマのひとつである 「健康寿命の延伸」 にもつながります。
自分自身の活力も筋トレを通じて高めていきたいと思います。
それでは、今日もトレーニング行ってきます!

Rehab Tech Blog

Discussion