LoginSignup
7
8

More than 5 years have passed since last update.

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

Posted at

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

今回は 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);          
        }
      }
    }
  }
}

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

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

痩せなきゃ!

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8