FitbitデータをCSV出力する方法と、ファイルごとの中身
FitbitのデータをCSV出力したくても、Google Takeoutのエクスポートで届くのは、歩数なら月ごと、心拍数なら1日ごとのJSONファイルと、いくつかのCSVフォルダです。Excelで開けるのは1ファイルずつです。どのファイルに何が入っているかと、選んだ期間を1日1行のCSVやExcelのシートにするいちばん短い方法をまとめました。
どのファイルに何が入っているか
Takeoutのアーカイブでは、ほとんどのファイルがTakeout/Fitbit/Global Export Data/にあります。以前のfitbit.comのエクスポートで作られたアーカイブでは、同じファイルがPhysical Activity、Sleep、Personal & Accountなどのフォルダに入っています。新しいアーカイブには、名前が_GoogleDataで終わるCSVのフォルダもあります。アーカイブがまだ手元にない場合は、Google Takeoutでの受け取り方から始めてください。下のファイル名は、実際のアーカイブで作られ、テストされたオープンソースの読み込みツールに基づいています(出典は末尾)。
| ファイル | 1件の中身 | 注意点 |
|---|---|---|
steps-2026-03-01.json | 1分間の歩数 | 時刻はUTCなので、1日の合計はタイムゾーンによって変わります。値は文字列で書かれています。 |
distance-….json | 1分間の距離 | 単位はセンチメートルです。100,000で割るとキロメートルになります。 |
calories-….json | 1分間の消費カロリー | 安静時の消費も含むので、1日の合計が総消費カロリーです。 |
heart_rate-2026-03-01.json | 数秒ごとの心拍数1回分 | 1日1ファイルで、1万から2万件になることがよくあります。時刻はUTCです。 |
resting_heart_rate-….json | 1日分 | エクスポートした日より後の日付は0で埋まっています。 |
sleep-….json | ステージ付きの睡眠1回分 | 開始と終了は現地時刻です。新しい夜から順に並び、ファイル同士が重なっています。 |
weight-….json | 体重の計測1回分 | 単位が書かれていません。下の「体重」を参照してください。 |
exercise-0.json、exercise-100.json | エクササイズ1回分 | 日付ではなく番号で分かれているので、期間で絞るにはすべて読む必要があります。 |
Sleep Score/sleep_score.csv、HRVやSpO2のCSV | 1晩または1日分 | 最初からCSVです。睡眠とは日付か睡眠IDで結び付けます。 |
月ごとのファイルは境目で1日ほど重なっているので、すべてのファイルをそのまま足すと二重に数えてしまいます。先に重複した時刻を取り除いてください。
UTCと日本時間の9時間のずれ
歩数、距離、消費カロリー、心拍数の時刻はUTCで記録されています。日本時間(Asia/Tokyo)はUTCより9時間進んでいて、夏時間もありません。UTCの日付でそのまま合計すると、日本時間の午前0時から9時までの記録が前日に入ってしまいます。たとえば朝の通勤で歩いた分は、前日の歩数に数えられます。
一方、睡眠の開始と終了は現地時刻で書かれているので、ずらす必要はありません。Tallybandは、Fitbitのプロフィールに保存されたタイムゾーンで1分ごとの値を合計します。プロフィールにタイムゾーンがなければこの端末のタイムゾーンを使い、どちらの場合も画面で変更できます。日本で使っていたなら、Asia/Tokyoになっているかを確かめてください。
睡眠
sleep-ファイルの1件は1回の睡眠で、ステージ(浅い睡眠、深い睡眠、レム睡眠、覚醒)を含みます。睡眠スコアは別のSleep Score/sleep_score.csvにあります。Tallybandの「睡眠」のCSVは1晩または仮眠ごとに1行で、開始と終了の時刻、睡眠時間と覚醒時間、ステージ、効率、スコアが並びます。仮眠はmain_sleep列がnoになり、日ごとの集計では本睡眠と仮眠を別の列に分けます。ステージを1つずつ時刻つきで並べた表は、Proで出力できます。
心拍数
心拍数はheart_rate-2026-03-01.jsonのように1日1ファイルで、数秒ごとの値が入っています。安静時心拍数はresting_heart_rate-ファイルに1日1件あり、エクスポートした日より後の日付には0が入っています。Tallybandは安静時心拍数を日ごとの集計の列に入れ、0の日は記録なしとして扱います。すべての記録を時刻つきで出力する表はProの機能で、1か月でも約50万行になるため、一度に31日分までです。
体重
体重はweight-2026-03-01.jsonのように月ごとのファイルにあり、1件ごとにweight、bmi、fat(体脂肪率)、日付、時刻、記録元(体重計やアプリ)が入っています。日付は「月/日/年の下2桁」の順です。注意したいのは、体重に単位が書かれていないことです。あるオープンソースの変換ツールはポンドとして読み、別のツールはキログラムとみなしています。自分のファイルの単位は、同じ計測に保存されたBMIで見分けられます。
| 体重÷BMI | 単位 | 理由 |
|---|---|---|
| 約2.1から4.4 | キログラム | BMIは体重(kg)を身長(m)の2乗で割った値なので、体重÷BMIは身長の2乗です。身長1.45mから2.10mなら2.1から4.4になります。 |
| 約4.6から9.7 | ポンド | 同じ値に2.2046を掛けたものです。 |
たとえば体重が172.4、BMIが24.68なら、172.4÷24.68=6.99なのでポンドです(78.2kg)。大人ではこの2つの範囲は重なりません。Tallybandはすべての計測でこの確認を行い、見つけた単位を画面に表示したうえで、キログラムとポンドの両方を書き出します。新しいアーカイブの_GoogleDataフォルダにあるweight.csvでは、列名に単位(グラム)が入っています。
期間を決めて1枚のシートにする3つの方法
- Tallyband(1、2分)。TakeoutのZIPを選び、期間を決めて、日ごとの集計のCSVをダウンロードします。選んだタイムゾーンで1分ごとの値を合計し、重複を取り除き、単位を換算し、睡眠スコア、HRV、SpO2を各日に結び付けます。睡眠、体重、エクササイズはそれぞれ別のCSVです。区切り文字は日本語版のExcelに合わせてカンマが初期設定で、ファイルはBOM付きのUTF-8なので、そのままExcelで開けます。Proなら、表ごとにシートを分けた1つのExcelファイルにまとめられます。どれもブラウザの中で処理します。
- ExcelのPower Query(ひと晩)。Excelで「データ」タブの「データの取得」から「ファイルから」「フォルダーから」を選び、
Global Export Dataを指定します。steps-など1つの接頭辞で絞り込んでファイルを結合し、レコードを列に展開して、valueを数値に、dateTimeを日付と時刻に変えます。そのうえでUTCから9時間ずらし、日ごとにグループ化します。これをデータの種類ごとに繰り返します。 - スクリプト。Pythonを使うなら、オープンソースのFitOutライブラリで、呼吸数、HRV、安静時心拍数などを期間を指定して読み込めます。
期間の指定について
Google TakeoutにはFitbitデータの期間を指定する機能がなく、期間を選んでCSVを出せた以前のエクスポートも、fitbit.comのアカウントの仕組みと一緒になくなりました。期間はダウンロードしたあとで切り出します。Tallybandでは日付を入力するか、「直近30日」「直近12か月」や年のボタンを押せば、すべての表がその期間に揃います。
アーカイブを、1日1行のスプレッドシートにできます。CSVの出力は無料で、何もアップロードしません。
Takeoutのアーカイブを開くTallyband Pro、8ドル(買い切り):選んだ期間の全データを1つのExcelファイルかCSVファイルのZIPにまとめ、心拍数のすべての記録と1分ごとの歩数も保存できます。GumroadでProを購入または無料でできることを見る。
よくある質問
FitbitのJSONファイルはExcelで開けますか?
開けます。Power Queryの「データの取得」から「ファイルから」「JSONから」で1ファイルずつ、「フォルダーから」ならまとめて読み込めます。ただし、レコードの展開、文字列から数値への変換、UTCから日本時間への変換は自分で行う必要があります。
1日の歩数がアプリの表示と少し違うのはなぜですか?
アーカイブの歩数は1分ごとにUTCで記録されています。UTCの日付で合計すると、日本時間の午前0時から9時までの歩数が前日に入ります。Tallybandは、Fitbitのプロフィールのタイムゾーンで合計し、そのタイムゾーンは画面で変更できます。
Google HealthアプリにCSV出力の機能はありますか?
Google Healthのヘルプで案内されているのは、Google Takeoutによる全データのアーカイブと、エクササイズごとのTCXファイルの書き出しです。全データのアーカイブはJSONが中心で、一部がCSVのフォルダです。Googleアカウントに移行していないアカウントについては、fitbit.comの「選択した Fitbit データをエクスポートする」も案内されています。
睡眠データだけをCSVで出力できますか?
Takeoutでは睡眠だけを選べないので、Google Healthのアーカイブ全体を受け取ります。それをTallybandで開けば、睡眠のCSVだけを好きな期間で無料でダウンロードできます。
心拍数のデータをすべてCSVにできますか?
安静時心拍数は、無料の日ごとの集計に入っています。数秒ごとのすべての記録を時刻つきで出力するのはTallyband Proの機能で、価格は8ドル(買い切り)です。1か月でも約50万行になるため、一度に31日分まで出力できます。
出典
- Google Healthヘルプ「Google Health データをエクスポートするにはどうすればいいですか?」(Googleアカウントでの申請、移行していないアカウントの手順、エクササイズごとのTCX、アーカイブの作成に数日かかること)
- FitOut:FitbitのTakeoutアーカイブを読むオープンソースのライブラリ(英語。作者自身の2026年3月のTakeoutに基づくフォルダ名とフィールド名)
- PDP-ConnectのFitbit Takeoutコネクタ、プルリクエスト300(英語。2026年10月13日にマージ。2025年8月から2026年4月の公開エクスポート3件で検証:1分ごとの値はUTC、距離はセンチメートル、境目で重なる30日ごとのファイル)
- armixlabsのFitbitからGarminへの変換ツール(英語。JSONの体重をポンド、weight.csvの体重をグラムとして読む)
最終確認日:2026年10月29日