表格查询 SQL "in" 类似函数

Sheets query SQL "in" -like function

我有一个 table,在 google sheet:

中有一些数据
[Name] [Product] [Price] [ID]

我需要根据另一个范围收集所选行并对其求和,比如 A2:A 在另一个 sheet 上,其中 A2:A 包含来自 [Name] 的名称。

我正在尝试以下解决方案:

=query('dataSheet'!A3:D,"select * " & myFunction() ,-1)

其中 myFunction() 是用于组装 SQL 查询的 "where ... or where ... " 部分的脚本:

function myFucntion(){
  var payList = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Ügyfél Fizetés').getRange('A2:A').getValues();
  var payLength = payList.filter(String).length;
  var payRow = payLength + 2;
  if (payLength > 0){
    var sqlString = "";
    sqlString = "where A = '""" & " & """ & "A " & payRow & """ & """ & "'";
    for (i = 0; i < payLength; i++){

    }
  }
  Logger.log(sqlString);
  return sqlString;
}

sqlString 应该看起来像这样:

where A = '" & A2 & "' or A = '" & A3 & "'"

我将在 for 循环中添加 or 段,但是 sqlString = ... 部分抛出错误:

Missing ; before statement.

请帮助我了解语法,或者如果您对我的问题有更有效的解决方案,我愿意接受所有建议。

当使用 Google Apps 脚本编写 Google Sheets 自定义函数时,我们应该记住两种语法,Google Sheets 使用的语法和 Google 使用的语法Apps 脚本,如果公式将包含 QUERY 内置函数,我们还会显示 Google 查询语言语法。

Google 表格公式和 Google Apps 脚本语句具有不同的语法。

串联

  • On Google Sheets & 用作连接运算符
  • Google Apps 脚本使用 JavaScript,当至少一个操作数是字符串时,它使用 + 连接字符串。

在文本中包含 "/在字符串中转义引号

  • 在 Google 工作表上将 " 放入文本值我们写 """
  • 在 JavaScript 上要在字符串中包含 " 我们写 \"

在 Google Apps 脚本

上写入时在 QUERY 参数中包含 '
  • 开启 Google 查询语言 ' 需要包含字符串文字。当我们将在 Google Apps 脚本中为 QUERY 函数编写 SQL 语句时,应将其写在字符串内,如 \'.