首页 > 解决方案 > 在数组公式中使用查询、索引和拆分不起作用

问题描述

我有一张表,其中有一列 (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) &"'") 

在不查询拆分和索引的情况下在数组公式中使用它可以正常工作。

=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) &"'")))

有没有其他方法可以实现这一点。

任何帮助表示赞赏。谢谢

我已共享电子表格的链接

标签: google-sheets

解决方案


=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”

推荐阅读