Google Apps Scriptでスプレッドシートの任意のセル(例えば1行3列目)が変化するとき、変化する前の値と変化した後の値を足す場合の処理はどのようにしたら良いのでしょうか?
(例:1行3列目のセルの値が35 →1行3列目のセルの値が44へ変化
合計は35+44=79
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
シンプルなトリガーでoldValueをすると変更前の値は取れます。
GAS
1function onEdit(e){ 2 const oldval = e.oldValue; 3 const newval = e.value; 4 console.log(parseFloat(oldval)+parseFloat(newval)); 5}
このシンプルなトリガーは、コードを書けば自動的にシートの変更時に実行されます。
あと、ついでに
const row = e.range.getRow();
const col= e.range.getColumn();
で、その行と列が取得できます。
投稿2021/05/07 23:45
総合スコア1508
0
同じシート内ではできなかったはずです.
タイムスタンプとともにシートを複製し,
=sum("35のシート名"!C1, "44の新シート名"!C1...)
と,値が変更するタイミングでシートを追加していくことで達成は可能です.
GoogleAppScript推奨です.
なお,
余談になり直接的な回答ができず恐縮ですが,
例えばExcelなどで同じ達成実例をご覧になられていた場合,その方法や関数を調べることで,多くのGoogleSheetsの問題は解決されます.
投稿2021/05/07 22:16
総合スコア40
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/08 08:45 編集
2021/05/08 08:47 編集
2021/05/08 09:29 編集
2021/05/08 10:09
2021/05/08 17:02 編集