Google スプレッドシート で Google カレンダー に書いたデータを集計して遊ぶ

みなさん体重とかチェックしてますか? 聞いてみましたが特に人そのものには興味はないですー 記録方法とか器具とか気になります

今回は Google カレンダーと Google スプレッドシートを連携して遊びます

はじめに書いたとおり、 Google カレンダーに記録している体重情報を使ってチャート描画したり、回帰分析をしたりしようかなと思ってその前段階として記載した情報をシートにまとめてみました

基本的にタイトルに情報をまとめています そのタイトルも規則性をもたせたものにしています

$$.$kg $$.$% 

体重 体脂肪率 という形式で書いています 統一した書き方をするとやりやすいですね 次にそれを集計するコードです コードはかなり雑なのであまり書き方とかは参考にしないでくささい

function getWieghts() {
  var sheet = SpreadsheetApp.openById("スプレッドシートのID (URLの一部分)").getSheets()[0];
  var calendars = CalendarApp.getAllCalendars();
  for (var i = 0; i < calendars.length; i++) {
    if (calendars[i].getName() == "体重") {
      var startTime = new Date(2013,1,1);
      var endTime = new Date();
      var calendarEvents = calendars[i].getEvents(startTime, endTime);
      var taizyu = [];
      var taishibo = [];
      for (var j = 0; j < calendarEvents.length; j++) {
        sheet.getRange(j+1, 1).setValue(calendarEvents[j].getStartTime());
        var splitedData = calendarEvents[j].getTitle().split(" ");
        for (var k = 0; k < splitedData.length; k++) {
          var str = (splitedData[k]).replace(/[^0-9.]/g, '');
          sheet.getRange(j+1, 2+k).setValue(str);          
        }
      }
    }
  }
}

やっていることは目的のカレンダーから特定期間のイベントを取得して そこからタイトルのみを取得、単位を排除してシートに書き出すだけ

あとはスプレッドシートのチャート機能とかで自分の体重の傾向とか見てみましょう ゴールデンウィークのおかげで量的体重緩和が起きたりしているのがみえるはずです

痩せなきゃ!

Qiita に書いた記事