Excel JS自定义函数不返回矩阵

时间:2017-11-20 16:35:22

标签: excel office-js custom-functions-excel

我正在尝试实现一个返回字符串矩阵的Excel自定义函数(JavaScript)。

根据Create custom functions in Excel (Preview),在这种情况下,resultDimensionality必须设置为matrix

为了保持简单,我只是复制了文档中的示例以返回这样的数组数组:

function getstringmatrix () {
    return [["first","row"],["second","row"],["third","row"]];
}    
Excel.Script.CustomFunctions["MYFUNCTIONS"]["GETSTRINGMATRIX"] = {
    call: getstringmatrix,
    result: {
        resultType: Excel.CustomFunctionValueType.string,
        resultDimensionality: Excel.CustomFunctionDimensionality.matrix,
    },
    parameters: [ ],
    options:{ batch: false, stream: false }
};

将函数= MYFUNCTIONS.GETSTRINGMATRIX()插入Excel单元格时,此单元格将填充字符串" first"。但是预期的第二列和其他两行根本没有填充!

1 个答案:

答案 0 :(得分:2)

您创建的功能应该在Excel中的Array Formula中使用。数组公式是一种高级公式,要求用户以特定方式输入它们。

  1. 首先,选择您希望公式输出的单元格范围(在您的情况下,选择3行,2列范围)
  2. 然后输入公式:=MYFUNCTIONS.GETSTRINGMATRIX()
  3. 然后按Ctrl + Shift + Enter。这是在Excel中输入数组公式的标准方法。
  4. Excel中的本机函数也以这种方式返回数组,例如=LINEST()

    当然,将范围作为输入的函数不需要任何特殊的输入方法 - 只有输出数组的函数才需要用户做一些特殊的事情。

    -Michael,PM加载项