前提・実現したいこと
見て頂いてありがとうございます。
初心者による質問ですが、お手柔らかにお願い致します。
Google Apps Scriptで栄養素管理Webアプリを作成しようとしています。
機能は以下です。
①Googleフォームから都度食べたものの品目やカロリーをスプレッドシートへ投入
②毎朝8時に「昨日の摂取カロリーは〇〇、摂取タンパク質量は〇〇g、体重は〇〇kgでした」とLINEでリマインドしてくれる
発生している問題・エラーメッセージ
①は問題なくできました。
②のコードを書いていますが、うまくいきません。
1.スプレッドシート「栄養素記録(回答)」をSpreadsheetオブジェクトとして取得する。
2.そのSpreadsheetオブジェクトの配下にあるシート「フォームの回答 1」をSheetオブジェクトとして取得する。
3.そのSheetオブジェクトの配下にあるA列(タイムスタンプ)が昨日の日付のC列(摂取カロリー)のセルを取得する。
4.取得した値を合計する
5.そのSheetオブジェクトの配下にあるA列(タイムスタンプ)が昨日の日付のD列(摂取タンパク質)のセルを取得する。
6.取得した値を合計する
7.そのSheetオブジェクトの配下にあるA列(タイムスタンプ)が昨日の日付のE列(体重)のセルを取得する。
8.取得した値の最大値を取得する
9.メールで送信する
この流れでコードを書いています。
現時点では↓
function myFunction() { const sheet = SpreadsheetApp.getActiveSheet(); const lastRow = sheet.getLastRow(); const date = new Date(); const today = Utilities.formatDate(date, 'JST', 'yyyy/MM/dd'); const day = date.getDate(); date.setDate(day - 1); const yesterday = Utilities.formatDate(date, 'JST', 'yyyy/MM/dd'); for(let i = 2; i <= lastRow; i++) { var rowDate = Utilities.formatDate(sheet.getRange(i, 1).getValue(), 'JST', 'yyyy/MM/dd'); if (rowDate === yesterday){ console.log(sheet.getRange(i,3).getValue()); } } }
「昨日」を取得する定数yesterdayを定義し、
for関数を用い、2行から下を順番に処理していくようにし、
if関数で「i,1(タイムスタンプ列)」が「定数yesterday」と一致する「i,3(摂取カロリー列)」を出力する。
というコードを手伝って頂き書くことが出来ました。
if関数で出力した"「i,1(タイムスタンプ列)」が「定数yesterday」と一致する「i,3(摂取カロリー列)」"をすべて合計するコードの書き方がわかりません。
どなたかご教授お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/11 05:37