「google apps script セルにif関数」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Googleスプレッドシート上のセルにIF関数を使った数式を入力する、GAS(Google Apps Script)スクリプトを探していた方によるものでしょう。
参考になりそうなスクリプトを、二つご紹介しておきます。
選択されているセルにIF関数を入力するサンプルスクリプト
ひとつ目は、選択されているセル範囲にIF関数を使った数式を入力するGASスクリプトです。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var rng = sh.getActiveRange();
var fml = '=IF(R[0]C[-1]>=80, "合格", "不合格")';
rng.setFormulaR1C1(fml);
例えば、B1セルが選択されている状態で上記のスクリプトを実行すると、選択されているB1セルに、
=IF(A1>=80, "合格", "不合格")
という数式が入力されます。
R1C1形式で数式を作成しておいてから、
var fml = '=IF(R[0]C[-1]>=80, "合格", "不合格")';
Range.setFormulaR1C1()メソッドで、アクティブなセルに数式を入力しています。
rng.setFormulaR1C1(fml);
「google apps script セルにif関数」
という検索をしていた方は、数式を作成する、
var fml = '=IF(R[0]C[-1]>=80, "合格", "不合格")';
の部分に躓いてらしたのではないかと推測しています。
Range.setFormula()メソッドでも数式を入力できますが、setFormulaR1C1()メソッドのほうがGASから数式を入力する場合に汎用性が高いように感じますので、ここではFormulaR1C1()メソッドを使ったスクリプトをご紹介しています。
for文でIF関数を入力するサンプルスクリプト
もうひとつは、ループ文で、IF関数を使った数式を入力するスクリプトです。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var end_row = sh.getLastRow();
var fml = '=IF(R[0]C[-1]>=80, "合格", "不合格")';
for(var i=1; i<=end_row; i++){
sh.getRange(i, 2).setFormulaR1C1(fml);
}
例えば、10行目までにデータが入力されているシートがアクティブな状態で、上記のスクリプトを実行すると、B1:B10セルに、
=IF(A1>=80, "合格", "不合格")
といった数式が入力されます。
Home » Googleスプレッドシートの使い方 » Google Apps ScriptでスプレッドシートにIF関数を入力する