【问题标题】:Select value of first row where column value matches选择列值匹配的第一行的值
【发布时间】:2021-07-29 08:50:59
【问题描述】:

我在 Google 表格中有两张表格,其中包含以下模式和数据

原始表

Projects start date end date status
Proj1 July 1, 2021 July 10, 2022 In Progress
Proj2 July 11, 2021 July 20, 2022 Done
Proj1 July 21, 2021 July 25, 2022 Done

还有另一张纸

项目分析

Projects start date end date status Time taken (days)
Proj1 July 1, 2021 July 25, 2022 Done 24
Proj2 July 11, 2021 July 20, 2022 Done 10

项目分析中的值是手动字段,但我希望它自动如下

  • 项目分析中将start date设置为原始表中第一个条目的start date
  • 项目分析中将end date设置为原始工作表中第一个条目的end date列,其中status完成

如何在 Google 表格中完成此操作?

【问题讨论】:

  • Proj1 如何既是“进行中”又是“完成”,它是完整的还是不完整的。除非它及时移动......因为它有两个开始日期:)
  • @SolarMike 第一张表是原始表,记录了每一刻。 Proj1 的移动日期已更改。由于Proj2Proj1 在两者之间移动,完成后,Proj1 重新开始。

标签: arrays google-sheets vlookup transpose google-query-language


【解决方案1】:

尝试:

=ARRAYFORMULA(QUERY({A:C, B:C*1}, 
 "select Col1,min(Col2),max(Col3),'Done',max(Col5)-min(Col4) 
  where Col1 is not null 
  group by Col1 
  label min(Col2)'start date',max(Col3)'end date','Done''status',max(Col5)-min(Col4)'time taken in days'", 1))

【讨论】:

    【解决方案2】:

    在excel中---

    B 列中的公式

    =VLOOKUP(A13,$A$2:$B$4,2,FALSE)
    

    C列中的数组公式

    =INDEX($C$2:$C$4,MATCH(1,(A13=$A$2:$A$4)*("Done"=$D$2:$D$4),0))
    

    参考INDEX and MATCH with multiple criteria

    D列中的公式

    =IF(NOT(ISNA(C13)),"Done","In Progress")
    

    【讨论】:

      【解决方案3】:

      开始日期:

      =ArrayFormula(IF(A2:A="",,VLOOKUP(A2:A,raw!A:B,2,FALSE)))
      

      结束日期:

      =ArrayFormula(IF(A2:A="",,VLOOKUP(A2:A,FILTER(raw!A:C,raw!D:D="Done"),3,FALSE)))
      

      【讨论】:

        猜你喜欢
        • 2022-09-23
        • 2022-11-17
        • 2012-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-03
        • 1970-01-01
        • 2014-05-15
        相关资源
        最近更新 更多