如何在 Google 表格查询中使用自定义函数?

How to use a custom function in a Google Sheets QUERY?

在单元格中,我有:

=QUERY(GETMONTHSDATA(), "select *")

对于函数:

function GETMONTHSDATA() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  return [].concat(
    spreadsheet.getRange('January 2022!A1'), 
    spreadsheet.getRange('February 2022!A1'), 
    spreadsheet.getRange('March 2022!A1')
  );
}

该单元格将是空白的,就好像它无法获取任何数据一样。当我在单元格中单击时,它会显示“未知函数:GETMONTHSDATA”,但我确信这只是一个视觉错误,因为我可以 return 另一个单元格中的字符串并且它工作得很好。如果我要对 return 进行字符串化,它会输出 [{},{},{}].

是否有使用自定义函数 运行 QUERY 的正确方法?它应该等于 =QUERY({'January 2022'!A1,'February 2022'!A1,'March 2022'!A1}, "select *")

spreadsheet.getRange('January 2022!A1')你不会得到任何值,但是范围

的所有特征

这个有效

=QUERY(GETMONTHSDATA(),"select *")

function GETMONTHSDATA() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  return [].concat(
    spreadsheet.getRange('January 2022!A1').getValue(), 
    spreadsheet.getRange('February 2022!A1').getValue(), 
    spreadsheet.getRange('March 2022!A1').getValue()
  );
}