今回行いたいこと
今回はスプレッドシートに
「価格」と「個数」を表示して「合計金額」を計算してみたいと思います。
「価格」と「個数」は実行を行うたびにランダム表示となり
「合計金額」には数式を使用します。
↓ ゴールのイメージ
ランダムと数式を使用したコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
function myFunction_0529001() { /*********************** * スプレッドシートの指定 ***********************/ // 現在開いているスプレッドシートを読み込む let active_sheet01 = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシートに新しいシートを追加挿入 let newSheet = active_sheet01.insertSheet(0); // タイトル部分は固定 let A01 = newSheet.getRange(1,1); let B01 = newSheet.getRange(1,2); let C01 = newSheet.getRange(1,3); let D01 = newSheet.getRange(1,4); // タイトル部分(A-D列) A01.setValue("果物"); B01.setValue("価格"); C01.setValue("個数"); D01.setValue("合計金額"); // A列の果物 let A02 = newSheet.getRange(2,1); let A03 = newSheet.getRange(3,1); let A04 = newSheet.getRange(4,1); let A05 = newSheet.getRange(5,1); // A列への書き込み A02.setValue("ばなな"); A03.setValue("りんご"); A04.setValue("みかん"); A05.setValue("いちご"); /******************************************************* * 価格と個数をランダムで設定し、合計は数式を使用して書き込む *******************************************************/ for(let i = 2; i <=newSheet.getLastRow(); i++){ // 価格を3桁のランダム newSheet.getRange(i,2).setValue(Math.floor(Math.random()*1000)+1); // 個数を1桁のランダム newSheet.getRange(i,3).setValue(Math.floor(Math.random()*10)+1); // 合計(D列)は数式を使用する // =B列i行目 * C列i行目 newSheet.getRange(i,4).setValue("=B" + i + "*" + "C" + i); } } |
解説
実行すると以下の流れで処理が走ります。
・新規シートを一番左に追加
・追加したシートにタイトル部分、A列(果物)を固定表示
・B列(価格)をランダム表示
・C列(個数)をランダム表示
・D列(合計)を数式を使用して表示
ランダムと数式の処理は以下で行っています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/******************************************************* * 価格と個数をランダムで設定し、合計は数式を使用して書き込む *******************************************************/ for(let i = 2; i <=newSheet.getLastRow(); i++){ // 価格を3桁のランダム newSheet.getRange(i,2).setValue(Math.floor(Math.random()*1000)+1); // 個数を1桁のランダム newSheet.getRange(i,3).setValue(Math.floor(Math.random()*10)+1); // 合計(D列)は数式を使用する // =B列i行目 * C列i行目 newSheet.getRange(i,4).setValue("=B" + i + "*" + "C" + i); } |
■ ランダム処理
Math.floor(Math.random()*1000)+1
最後の+1はランダムで0が出ないようにするために設定しています。
■ 数式の利用
setValue(“=B” + i + “*” + “C” + i)
例えば1回目のforのループでは「=B2*C2」となります。
2回目以降は行が+1されていくので、数式を利用して計算が行えています。
今回は以上となります。
最後までお読みいただきありがとうございました!