Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将排序和匹配google工作表公式转换为应用程序脚本/javascript?_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

如何将排序和匹配google工作表公式转换为应用程序脚本/javascript?

如何将排序和匹配google工作表公式转换为应用程序脚本/javascript?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,如何运行以下公式: =sort(A2:F5000, match(B2:B5000,{"QTA 10 Days","QTA-REMAKE","QTA-SAMPLE","QTA NEW PROJECT","QTA NPI-CVF-Bryan","Qual-QTA-NPI Remake"},0),1) 要使用Google Sheets的Google Apps脚本API访问一系列字段?要对工作表进行排序,可以使用以下代码: 函数myFunction(){ var inSheet=Spreadsheet

如何运行以下公式:

=sort(A2:F5000, match(B2:B5000,{"QTA 10 Days","QTA-REMAKE","QTA-SAMPLE","QTA NEW PROJECT","QTA NPI-CVF-Bryan","Qual-QTA-NPI Remake"},0),1)

要使用Google Sheets的Google Apps脚本API访问一系列字段?

要对工作表进行排序,可以使用以下代码:

函数myFunction(){
var inSheet=SpreadsheetApp.getActive().getSheets()[0];
var outSheet=SpreadsheetApp.getActive().getSheets()[1];
var values=inSheet.getRange('A2:C23').getValues();
value.sort(mySort);
outSheet.getRange('A2:C23')。设置值(值);
}
函数mySort(第1行、第2行){
var值=[“QTA 10天”、“QTA-REMAKE”、“QTA-SAMPLE”、“QTA新项目”、“QTA NPI CVF Bryan”、“Qual QTA NPI REMAKE”];
var val1=values.indexOf(第1行[2]);
var val2=values.indexOf(第2行[2]);
返回val1-val2;
}
当然,您必须更改正在使用的范围和/或图纸。我使用的Sheets文件是一个,您可以在其中看到Sheet1中的原始值和Sheet2中运行脚本的输出

基于起始模式子串的排序 要根据字符串是否以“QTA”开头进行排序,可以用以下函数替换上面提供的
mySort
函数:

函数mySort(第1行,第2行){
var val1=第1行[2];
var val2=第2行[2];
变量qta1=val1.indexOf(“QTA”)=1;
var qta2=val2.indexOf(“QTA”)=1;
if(qta1==qta2)返回strcmp(val1,val2);
返回qta1?1:-1;
}
功能strcmp(a、b){
if(a.toString()b.toString())返回1;
返回0;
}

此函数将对包含“QTA”的行进行优先级排序,并且在两个或两个都不包含子字符串的情况下,它还将比较字符串的其余部分。有关结果,请参见我的测试表的表3。

欢迎。请按照中的建议添加您的搜索/研究工作的简要说明。谢谢您的回答。我有一个问题,如果我有其他变量的名称中没有“QTA”,我如何使所有变量的变量名中有“QTA”的优先级最高?这样,当我对任何带有“QTA”的变量进行排序时,它们都会出现在工作表的顶部。@Alvis我已经用您描述的预期行为更新了我的答案。如果这对你有用,请考虑将答案标记为“接受”。干杯