【问题标题】:Using Query, Index and Split within an arrayformula not working在数组公式中使用查询、索引和拆分不起作用
【发布时间】:2019-02-04 20:25:28
【问题描述】:

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

有没有其他方法可以做到这一点。

感谢任何帮助。谢谢

我已经分享了@98​​7654321@

  • 工作表 1 显示错误的结果

  • 工作表 3 显示了所需的结果,但仅适用于单元格。

【问题讨论】:

  • 你能分享一份你的电子表格吗?
  • 供将来参考:数组公式不适用于查询(以及几个不同的基于数组的公式)
  • 已共享电子表格的副本。

标签: google-sheets


【解决方案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 text "contains" 不适用于多个条目,它不等同于 statement "in"

【讨论】:

  • 谢谢,但它在我想要的上下文中不起作用,我分享了显示错误结果和我想要的结果的工作表。
  • 你会想要使用另一个正则表达式,使用"([^.-]*)\."而不是"[^.]*"
  • 谢谢,这似乎可行,但我如何让第一行成为列的标题,现在第一行显示结果。
  • 因为行是通过 importrange 添加的,这就是为什么我使用 arrayformula 在第 1 行添加 col 标题并获得结果而不考虑 importrange。
  • ={"Custom header" ; formula}
猜你喜欢
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 2017-10-05
  • 2022-01-24
  • 1970-01-01
  • 2017-05-12
  • 2011-10-25
  • 2021-01-03
相关资源
最近更新 更多