Google sheets 如何将多个函数与ArrayFormula组合
我使用Google sheets 如何将多个函数与ArrayFormula组合,google-sheets,Google Sheets,我使用ImportRange和Query以及Join和Split得到了以下公式,这些公式工作正常: =join(" / ", QUERY(IMPORTRANGE("Google-Sheet-ID","RawData!A:AC"),"select Col25 where Col1 = " & JOIN(" OR Col1 = ", split(V2:V,"+")), 0)) 此外,我还有以下ArrayFormula,其中Split函数工作正常: =数组公式(如果(len(V2:V)=0,
ImportRange
和Query
以及Join
和Split
得到了以下公式,这些公式工作正常:
=join(" / ", QUERY(IMPORTRANGE("Google-Sheet-ID","RawData!A:AC"),"select Col25 where Col1 = " & JOIN(" OR Col1 = ", split(V2:V,"+")), 0))
此外,我还有以下ArrayFormula
,其中Split
函数工作正常:
=数组公式(如果(len(V2:V)=0,拆分(V2:V,“+”))
但当我尝试使用以下公式将它们组合在一起时:
=ARRAYFORMULA(如果(len(V2:V)=0,连接(“/”,查询(导入(“谷歌工作表ID”,“RawData!A:AC”),“选择Col25,其中Col1=“&join”(&Col1=“,拆分(V2:V,“+”),0)))
它失败了,并给了我以下错误:
错误
函数拆分参数1的值应为非空
这是我的测试表
更新
我把它改成:
=ARRAYFORMULA(如果(len(C2:C)=0,则连接(“或Col1=”,ARRAYFORMULA(如果(len(C2:C)=0,则拆分(C2:C,“+”))))))
所以我的全部公式是:
=数组公式(
如果(
len(C2:C)=0,,
加入(“/”,
质疑(
导入(“14iNSavtvjRU0XipPWIMKyHNwXTA85P_caffstiphi6c”,“RawData!A:AC”),“选择Col25,其中Col1=“&
阵列公式(
如果(len(C2:C)=0,,
JOIN(“或Col1=”,
阵列公式(
如果(
len(C2:C)=0,拆分(C2:C,“+”)
)
)
)
)
),
0
))))
现在得到错误:
错误
联接范围必须是单行或单列
我相信标签上这个叫做MK.Testing的公式会得到你想要的信息
=QUERY(IMPORTRANGE("14iNSavtvjRU0XipPWIMKyHNwXTA85P_CafFTsIPHI6c","RawData!A:AC"),"select Col25 where Col1="&TEXTJOIN(" or Col1=",TRUE,A2:A))
我想你可能把事情搞得太复杂了?这个公式只是从装运ID中形成一个文本字符串,用于查询。有一件事可能会让您大吃一惊,那就是query()对于列中的数据类型非常特殊。您的装运ID可以是数字,也可以是数字字母组合,但不能两者都是。也就是说,如果您有一些装运ID包含字母,而其他ID不包含字母,那么要获得一个有效的查询将更加困难。(尽管并非不可能)。为了帮助您,您的示例ID必须以这种方式尽可能准确地反映真实ID。如何使用应用程序脚本来实现这一点?您可以从Sheet2、装运ID和MK的ID中获取值。测试并比较它们。如果两者一致,则将ETA复制到MK测试的C列中:
function myFunction() {
var sprsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet2 = sprsheet.getSheetByName("Sheet2");
var mkTesting = sprsheet.getSheetByName("MK.Testing");
var shipmentId = sheet2.getRange("A2:A").getValues();
var idList = mkTesting.getRange("A2:A").getValues();
for (var i = 0; i < shipmentId.length; i++){
for (var j = 0; j < idList.length; j++){
if (idList[j][0] == ""){break;} //Stops if there is an empty cell in Mk.Testing's column A
if (idList[j][0] === shipmentId[i][0]){
var eta = sheet2.getRange("E"+(i+2)).getValue();
mkTesting.getRange("C"+(j+2)).setValue(eta);
}
}
}
}
函数myFunction(){
var sprsheet=SpreadsheetApp.getActiveSpreadsheet();
var sheet2=sprsheet.getSheetByName(“sheet2”);
var mkTesting=sprsheet.getSheetByName(“MK.Testing”);
var shipmentId=sheet2.getRange(“A2:A”).getValues();
var idList=mkTesting.getRange(“A2:A”).getValues();
对于(变量i=0;i
参考文献: