【问题标题】:Google spreadsheet custom function input values谷歌电子表格自定义函数输入值
【发布时间】:2017-02-26 20:14:30
【问题描述】:

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

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) ,即使我的 A2 包含高于 4.5 的值,输出也只是 failure1 。

【问题讨论】:

  • 嗨,我注意到这里有一个错字:if (A

标签: javascript google-sheets custom-function


【解决方案1】:

有一些语法错误

  • 分号表示语句结束
  • 完整的 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)

【讨论】:

    【解决方案2】:

    当您使用范围作为自定义函数的参数时,它会变得有点棘手。在您的函数中,这将是一个数组数组,使用起来有点困难。

    所以当你调用=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;
    }
    

    诀窍在于处理另一个数组中包含一个数组的事实,因此我需要遍历外部数组,然后遍历内部数组,累积每个值以获得总和。

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

    【讨论】:

      猜你喜欢
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多