在数组公式中使用查询,索引和拆分不起作用

时间:2018-08-30 00:33:03

标签: google-sheets

我有一个工作表,该工作表的列(D)的值用“-”分隔,我试图拆分该值并获取下半部分,并在查询中使用它来查找并获取另一个值。

例如工作表1

Col D         |
--------------|
67009-XYZ0001 |

第2张纸

Col C       | Col D | Col E    |
------------|-------|----------|
XYZ0001.jpg |       | test.com |

该公式应为“ test.com

它在单元格中被自己使用时有效。

=query(Info!A:F,"Select E where C contains '"& index(SPLIT(D2,"-"),0,2) &"'") 

在数组公式中使用它而无需查询split和index即可正常工作。

=ArrayFormula(IF(ROW(A:A)=1,"GET URL,index(SPLIT(D:D,"-"),0,2)))

但是当我尝试在数组公式中将其与查询一起使用时,它将无法工作。

=ArrayFormula(IF(ROW(A:A)=1,"GET URL",query(Info!A:F,"Select E where C contains '"& index(SPLIT(D:D,"-"),0,2) &"'")))

还有其他方法可以实现这一目标。

感谢您的帮助。谢谢

我已经分享了link to the spreadsheet

  • 第1张结果显示错误

  • 第3页显示了所需的结果,但仅在单元格中有效。

1 个答案:

答案 0 :(得分:1)

=FILTER(VLOOKUP(query(SPLIT(D2:D,"-"),"select Col2"), {REGEXEXTRACT(Sheet2!C:C,"[^.]*"),Sheet2!E:E},2,),D2:D<>"")

  • query:获取第2列的索引,函数index不适用于arrayformula
  • vlookup:获得完全匹配
  • regexExtract:获取点(。)之前的文本部分。

注意:

  • query文本“包含”不适用于多个条目,它不等同于语句“ in”