Googleスプレッドシートでユーザー関数を定義するときにシートの関数が使えなかったメモ

ちょっとGoogleスプレッドシートで集計をしていたときに、同じ式をコピペして値を変えていくのも面倒だと思ったからユーザー関数をまとめようと思ったときのメモ。

スプレッドシートにはGoogle Apps Scriptを記述してオリジナルの関数を定義することができます。ExcepでいうところのVBA。

「ツール→スクリプト エディタ」からエディタを開くことができ、例えばここに

function hoge(num) {
  retur num
}

というように定義すると、シートのほうで

などというように使用できるようになります。

で、目的としてはもともとシートで使っていた式を短縮化したかったのですが、どうもスプレッドシート関数はそのまま使えないよう。

function hoge(num) {
  return ROUNDDOWN(num);
}

などどしても、ROUNDDOWNが見つからないとエラーになります。

どうもその手のサイトをみてみても、わざわざシートに代入するようにしているので、直接使う方法はないんじゃないかと思います。

参考:Google Apps Scriptでプログラミングを学ぶ 第5回 「Googleスプレッドシート関数の操作」

けれどGASはJavaScriptのようなので、JavaScriptの関数が使用できます。

例えばROUNDDOWNはMath.floorで同じ事ができます。

(Math.floorは整数を扱うので、小数点以下の場合は10倍して10で割る、など調整が必要)

もしかしたら何かしら方法はあるのかもしれませんが、ひとまず見当たらなかったので…

ユーザー関数を使おうと思ったら、JavaScriptのほうを調べてみるのが近道かもしれません。

スポンサーリンク

シェアする

スポンサーリンク