2017-02-26 92 views
0

我最近正在爲學生成績的項目工作。 我很缺乏經驗,所以我很快就遇到了問題。谷歌電子表格自定義功能輸入值

function MyFunction(A,B,C) { 

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

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

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

我還有一些其他的東西,因爲這顯然不完整,但由於某些原因,這些命令似乎沒有工作。

我總是failure1即使單元格,而我分配一個高於4.5

比如我在一個單元格=MyFunction(A2:C2)輸入,輸出只是failure1即使我的A2包含高於4.5的值。

+0

嗨,我注意到這裏一個錯字: 如果(A < 4.5); - 多餘的分號。他們無處不在) –

回答

0

有一些語法錯誤

  • 分號表示語句
  • 一個完整的結束,如果語句需要的條件和聲明。
  • {,}包圍塊。

另一個問題是,函數,意味着參數是簡單的值,而不是對象,所以你不應該使用範圍作爲輸入。

寫你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),您的自定義功能得到這樣的:

[[a, b, c]]

其中a是在A2單元格的值,B從小區C2單元格B2和C。

這裏是你怎麼可能喜歡的東西的工作樣本(說來概括該範圍內的值):

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

訣竅是處理的事實,你有另一個數組中的數組,所以我需要迭代外部數組,然後迭代內部數組累積每個值以獲得總和。

使用單個輸入要容易得多,並且可以更接近您所期望的。