2

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

根据在 Excel (Preview) 中创建自定义函数,在这种情况下必须将 resultDimensionality 设置为矩阵

为了简单起见,我刚刚从文档中复制了示例以返回这样一个数组数组:

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”。但是预期的第二列和其他两行根本没有填满!

4

1 回答 1

2

您创建的函数应该在 Excel的数组公式中使用。数组公式是一种高级类型的公式,需要用户以特定方式输入。

  1. 首先,选择您希望公式输出的单元格范围(在您的情况下,选择 3 行 2 列范围)
  2. 然后输入公式:=MYFUNCTIONS.GETSTRINGMATRIX()
  3. 然后键入 Ctrl+Shift+Enter。这是在 Excel 中输入数组公式的标准方法。

Excel 中有原生函数也以这种方式返回数组,例如=LINEST().

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

于 2017-11-21T17:57:29.093 回答