Google电子表格自定义函数输入值

时间:2017-02-26 20:14:31

标签: javascript google-sheets custom-function

我最近正在开展一个学生成绩项目。 我很缺乏经验,所以我很快就遇到了问题。

function MyFunction(A,B,C) {

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

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

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

我还有其他一些东西,因为这显然不完整,但由于某些原因,这些命令似乎不起作用。

即使我指定A的单元格高于4.5

,我也总是失败1

例如,我键入单元格=MyFunction(A2:C2),输出只是失败1,即使我的A2包含的值高于4.5。

2 个答案:

答案 0 :(得分:0)

当你使用范围作为自定义函数的参数时,它会有点棘手。在你的函数中,这将是一个数组数组,这使得使用它有点挑战。

因此,当您致电=MyFunction(A2:C2)时,您的自定义功能会获得此信息:

[[a, b, c]]

其中a是单元格A2中的值,b来自单元格B2,c来自单元格C2。

以下是您可以使用类似内容的示例(比如对范围内的值求和):

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

诀窍是处理你在另一个数组中有一个数组的事实,所以我需要迭代外部数组,然后遍历内部数组,累积每个数值以得到总和。

使用单个输入更容易,并且更接近您的预期。

答案 1 :(得分:0)

存在一些语法错误

  • 分号表示结束语
  • 完整的if语句需要条件和声明。
  • {}附上区块。

另一个问题是函数意味着参数是简单的值,而不是对象,所以你不应该使用范围作为输入。

编写函数的另一种方法如下:

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)