您好,SO社区,在此先感谢您的帮助。我正在为我的公司构建一些简化的自动销售报告,其中数据源植根于Google表格。我希望能够基于我的应用程序脚本中QUERY函数中的动态变量来自定义报告。我相信这是一个非常基本的答案,但是我有点像是一个使新手感到困惑的代码,并且没有受过轻松解决的教育。
在QUERY中,我要查找的变量在B列中,到目前为止,我只能在\ Artist Name \中手动输入该变量。我尝试使用各种引号和+插入动态var而不是Artist Name,但脚本运行后返回错误。
function exampleOfHowItCurrentlyWorks {
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var setQuery = ss.getSheetByName('printLog').getRange('A1').setFormula('=QUERY(A1:I,"Select A,B Where B Contains \'Artist Name\' ",1)');
}
function exampleOfHowItShouldWork {
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var artist1 = ss.getSheetByName('theme').getRange('B1').getValue();
var setQuery = ss.getSheetByName('printLog').getRange('A1').setFormula('=QUERY(A1:I,"Select A,B Where B Contains \'artist1\' ",1)');
}
基本功能是我希望能够转到名为“主题”的工作表名称并将“ B1”范围更改为Michaelangelo,并且查询返回结果,其中B列包含Mihchaelangelo…
答案 0 :(得分:0)
function exampleOfHowItShouldWork {
var app = SpreadsheetApp;
var ss = app.getActiveSpreadsheet();
var artist1 = ss.getSheetByName('theme').getRange('B1').getValue();
var setQuery = ss.getSheetByName('printLog').getRange('A1')
.setFormula('=QUERY(A1:I,"Select A,B Where B Contains \'' + artist1 + '\' ",1)');
}
使用不转义的单引号将字符串关闭,然后使用+将字符串连接在一起。
根据您执行此操作的原因(例如,如果您只是想让B1作为“搜索框”,请在其中输入名称),不使用Apps脚本通过表格进行操作可能会更容易:< / p>
=QUERY(A1:I, "Select A, B Where B contains '" & B1 & "'", 1)
其他工作表可以通过'theme'!B1
访问。