如何将多个函数与ArrayFormula结合使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将多个函数与ArrayFormula结合使用相关的知识,希望对你有一定的参考价值。

我具有使用ImportRangeQuery以及JoinSplit正常工作的以下公式:

=join(" / ", QUERY(IMPORTRANGE("Google-Sheet-ID","RawData!A:AC"),"select Col25 where Col1 = " & JOIN(" OR Col1 = ", split(V2:V,"+")), 0))

此外,下面的ArrayFormulaSplit功能都正常运行:

=ARRAYFORMULA(if(len(V2:V)=0,,split(V2:V,"+")))

但是当我尝试使用以下公式将它们组合在一起时:

=ARRAYFORMULA(if(len(V2:V)=0,,join(" / ", QUERY(IMPORTRANGE("Google-Sheet-ID","RawData!A:AC"),"select Col25 where Col1 = " & JOIN(" OR Col1 = ", split(V2:V,"+")), 0))))

它失败了,并给了我以下错误:

错误功能SPLIT参数1的值应为非空。

Here是我的测试表。

UPDATE

我将其更改为:

=ARRAYFORMULA(if(len(C2:C)=0,,JOIN(" OR Col1 = ", ARRAYFORMULA(if(len(C2:C)=0,,split(C2:C,"+"))))))

所以我的完整公式是:

=ARRAYFORMULA(
if(
   len(C2:C)=0,,
join(" / ", 
QUERY(
     IMPORTRANGE("14iNSavtvjRU0XipPWIMKyHNwXTA85P_CafFTsIPHI6c","RawData!A:AC"),"select Col25 where Col1 = " & 
        ARRAYFORMULA(
           if(len(C2:C)=0,,
              JOIN(" OR Col1 = ", 
                  ARRAYFORMULA(
                     if(
                         len(C2:C)=0,,split(C2:C,"+")
                      )
                  )
               )
            )
        ),

    0
))))

现在出现错误:

错误JOIN范围必须是单行或单列。

答案

我相信此标签上称为MK的公式。测试将提取您希望的信息。

=QUERY(IMPORTRANGE("14iNSavtvjRU0XipPWIMKyHNwXTA85P_CafFTsIPHI6c","RawData!A:AC"),"select Col25 where Col1="&TEXTJOIN(" or Col1=",TRUE,A2:A))

我认为您可能已经使事情复杂化了?此公式仅构成要在查询中使用的货件ID中的文本字符串。可能使您失望的一件事是,query()对于列中的数据的[[type来说非常特别。您的货件ID可以是数字,也可以是数字字母组合,但不能同时使用。也就是说,如果您有一些包含字母的货运ID,而另一些不包含字母的货运ID,则更难获得有效的查询。 (尽管并非不可能)。为了帮助您,请务必以尽可能准确的方式将示例ID反映真实ID,这一点很重要。

以上是关于如何将多个函数与ArrayFormula结合使用的主要内容,如果未能解决你的问题,请参考以下文章

Google 电子表格 ArrayFormula + VLookup 转换

=ArrayFormula 使用 SumIf 函数在 Google 表格中的两个日期之间求和

将 ArrayFormula 与查询或过滤器一起使用

Google表格中ARRAYFORMULA内的动态数据CONCATENATE

Arrayformula无法识别单元格中的日期

如何将多个 INSERT INTO 与准备好的语句结合起来?