0

通常の数値、パーセンテージ、または通貨として渡されるセル値を関数で処理できるようにしたいと考えています。現在、単純な数字のみが機能しますが、通貨で試してみるとエラーが発生します:

/**
 * Returns the sum of a geometric serie
 *
 * @param {number} a0 The first element of the serie
 * @param {number} q The ratio
 * @param {number} n Number of elements to sum
 * @return The sum of first n elements.
 * @customfunction
 */
function SUMGEOMSERIE(a0, q, n) {

  if (typeof a0 != 'number') {//|| (typeof q != 'number') || (typeof n != 'number') {
      return null;
   }

  if (q==1)
    return a0*n;
  else
    return a0*(1-Math.pow(q, n))/(1-q);
}

アップデート

入力として関数に渡すセルが「複雑な」計算 (3 ステップの「バックトラッキング」) の結果である場合、エラーが発生します。

4

1 に答える 1

0

パーセンテージ値は AppScript では 10 進数になるので (こちらを参照)、問題ないはずです。整数としてそれが必要な場合は、100 を掛けるだけです。通貨についてsetNumberFormatは、取得する範囲で使用できます。数値を希望する形式で渡します (例: "0,000.00")。

于 2015-03-27T15:58:14.893 に答える