【问题标题】:Arrayformula with index from a query带有查询索引的数组公式
【发布时间】:2021-06-11 13:29:58
【问题描述】:

我目前的公式是:

=INDEX(QUERY({$A$2:$P},"select max(Col"&COLUMN($M$2)&") where lower(Col"&COLUMN($D$2)&") contains lower('"& D3 &"')",1),2,1)

这是我使用的以下逻辑:

  1. 我的客户有不同的设备,我每年都要做QA。在那张表上,我列出了我的客户提供的所有设备。
  2. Col D 有我客户的姓名。每个客户都有多条记录,每台设备对应一条记录。
  3. Col M 有我上次对他们的设备进行 QA 的日期。
  4. 我使用 QUERY 函数检索了我对那个客户的设备进行 QA 的最后日期(使用 max(Col M))。
  5. 使用 INDEX 函数仅检索“最大日期”的值。

我想要什么:

我设法只为单元格 D3 执行此操作,但我想使用 ARRAYFORMULA 将其扩展为 D3:D。我尝试使用以下这 3 个选项进行应用,但它始终只返回一个值:

 1. =INDEX(QUERY({$A$2:$P},"select max(Col"&COLUMN($M$2)&") where lower(Col"&COLUMN($D$2)&") contains lower('"& ARRAYFORMULA(D3:D) &"')",1),2,1)
 2. =ARRAYFORMULA(INDEX(QUERY({$A$2:$P},"select max(Col"&COLUMN($M$2)&") where lower(Col"&COLUMN($D$2)&") contains lower('"& D3:D &"')",1),2,1))
 3. =ARRAYFORMULA(INDEX(QUERY({$A$2:$P},"select max(Col"&COLUMN($M$2)&") where lower(Col"&COLUMN($D$2)&") contains lower('"& ARRAYFORMULA(D3:D) &"')",1),2,1))

我怎样才能让它工作?

【问题讨论】:

  • 你能分享一张包含一些示例数据的表格吗?那样会更容易理解您要做什么。
  • Indexarrayformula 一起使用时将始终返回一行值,这是限制。如果要使用index 函数,则需要将公式复制到所需的所有行,否则请尝试其他公式

标签: google-sheets


【解决方案1】:

您可以通过将客户名称的值查找到客户名称和 QA 日期的排序数组中来做到这一点。

如果您的数据如下所示: 然后在C2 中使用公式=ArrayFormula(IF(LEN(A2:A)=0, "", (VLOOKUP(A2:A, QUERY(A2:B, "select A, B order by A, B desc"), 2, 0))))

不过,您必须根据工作表中的列名调整公式。

【讨论】:

  • 泰布罗利!工作完美! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 2018-12-31
  • 2019-02-04
  • 1970-01-01
  • 2018-02-09
相关资源
最近更新 更多