2017-02-26 8 views
0

私は最近、学生グレードのプロジェクトに取り掛かっていました。 私は非常に経験がないので、問題はかなり早く発生しました。Googleスプレッドシートのカスタム関数入力値

function MyFunction(A,B,C) { 

if (A < 4.5); { 
return "failure1"} 

if (B < 4.5); { 
return "failure2"} 

if (C < 4.5); { 
return "failure3"} 
} 

これは明らかに完全ではありませんが、これらのコマンドは機能していないようです。

私はいつも、私はセル=MyFunction(A2:C2)に入力し、出力は私のA2が4.5よりも高い値が含まれているにもかかわらず、ちょうどfailure1である私がAを割り当てるために、細胞は、例えば4.5

よりも高くなっているにもかかわらずfailure1取得。

+0

こんにちは、私はここにタイプミスに気づい: 場合(< 4.5)。 - 冗長セミコロン。彼らはどこにでもいる) –

答えて

0

  • セミコロンがステートメント
  • 完全の終わりを示すいくつかの構文エラーがあります。
  • {,}ブロックを囲む。

もう1つの問題は、引数がオブジェクトではなく単純な値であることを意味するため、入力として範囲を使用しないでください。

あなたfuncionを書くための別の方法は以下の通りです:

function MyFunction(A,B,C) { 
    if (A < 4.5) return "failure1"; 
    if (B < 4.5) return "failure2"; 
    if (C < 4.5) return "failure3"; 
} 

それを使用する方法を以下に示します。

=MyFunction(A2,B2,C2) 
0

カスタム関数の引数として範囲を使用すると、少し複雑になります。あなたの関数では、これは配列の配列になっていますので、作業するには少し難題になります。

あなたが=MyFunction(A2:C2)を呼び出すときに、カスタム関数は、この取得:セルA2、セルC2からセルB2とCからBの値である

[[a, b, c]]

を。ここで

は、あなたがそのような何か(範囲の値を合計すると言う)を操作する方法のサンプルです:

function myFunction(values) { 
    var x = 0; 
    values.forEach(function(values) { 
    values.forEach(function(value) { 
     x += value; 
    }); 
    }); 
    return x; 
} 

トリックはあなたが別の配列内の配列を持っているという事実を扱っています、だから私は外側の配列を反復処理し、合計を得るために各値を累積する内側の配列を反復処理する必要があります。

単一入力を使用する方がはるかに簡単で、予想通りに動作します。文が条件と文を必要とする場合

関連する問題