2015年11月15日日曜日

Google Spreadsheet - カスタム関数 EACH_ROW 数行置きに行を取り出す

reshapeのみで出来ないかと頑張ったけどエラーが頻出したので諦めた。
カスタム関数で実行される時は範囲オブジェクトが対象なので、GASで配列を対象とする時では型が違うみたい。

/**
 * @param {Number} step
 * @param {Range} range
 * @param {Range} rows each row step by given number.
 * @customfunction
 */
function EACH_ROW(step, range) {
  return range.filter(function(x, i){ return i % step == 0; });
}

列に対する each col は面倒なので作らない。transposeとの組み合わせで対応。


追記

組み込み関数のみで出来た。範囲からN行毎に行を取り出す
=FILTER(範囲, MOD(ROW(範囲), N) = 0)

0 件のコメント:

コメントを投稿