Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 以数组公式返回Google工作表中最后日期的列标题_Google Sheets_Spreadsheet_Google Sheets Query - Fatal编程技术网

Google sheets 以数组公式返回Google工作表中最后日期的列标题

Google sheets 以数组公式返回Google工作表中最后日期的列标题,google-sheets,spreadsheet,google-sheets-query,Google Sheets,Spreadsheet,Google Sheets Query,我有很多列用来跟踪Google Sheets中带有日期的条目的某些阶段。我想要一个为每个条目返回最新阶段的列,最好使用数组公式,因为这是一个将不断添加到的列表,将公式复制到新行是一件痛苦的事情(这是最终用户需要完成的事情,因此需要简单) 这是我想要的输入/输出示例。 我尝试将数组公式与组合使用,但我认为将该公式的输入更改为多行范围意味着结果将忽略条目所在的行。例如,将查找包装在ARRAYFORMULA中,并将其应用于示例,在每一行返回“Stage4”。或者,我认为可能有一种方法可以使用查询/筛

我有很多列用来跟踪Google Sheets中带有日期的条目的某些阶段。我想要一个为每个条目返回最新阶段的列,最好使用数组公式,因为这是一个将不断添加到的列表,将公式复制到新行是一件痛苦的事情(这是最终用户需要完成的事情,因此需要简单)

这是我想要的输入/输出示例。

我尝试将数组公式与组合使用,但我认为将该公式的输入更改为多行范围意味着结果将忽略条目所在的行。例如,将查找包装在ARRAYFORMULA中,并将其应用于示例,在每一行返回“Stage4”。或者,我认为可能有一种方法可以使用查询/筛选来实现这一点,但我一无所获。谢谢大家

编辑:为了澄清,“阶段”不需要编号,而是文本字段(可能是动态的,因此我不愿使用HLOOKUP)。

假设“阶段1”位于单元格
A2
中,并且您可以不跳过阶段。您可以在F3上使用此公式自动填充输出:

=ArrayFormula(transpose(
    split(
      concatenate(
        if((A3:D<>"")*(B3:E=""),A2:D2,"")&
        if(column(A2:D2)=column(D2),char(9),"")
      )
      ,char(9),true,false
    )
 ))
=数组公式(转置)(
分裂(
连接(
如果((A3:D“”)*(B3:E=“”),A2:D2“”)&
if(列(A2:D2)=列(D2),字符(9),“”)
)
,char(9),true,false
)
))
您可以看到,我们通过检查notempty来确定阶段,后面紧跟着一个空的。因此,禁止跳跃阶段规则:-) 此外,这需要在最后一个阶段列之后有一个额外的空列(在您的示例中,列
E
必须为空)


ps:添加了奖金,此公式也适用于“无阶段”行;-)

输出排序的逻辑是什么?为什么不使用UNIQUE(TRANSPOSE())?输出是最新的阶段,在左侧的相应列中有日期。每个阶段只代表一次,这只是巧合。如果“Stage3”标题下的单元格有日期,那么第一个输出将是“Stage3”而不是stage2。这看起来很有希望:关于不跳转阶段的说法是正确的。我会试一试再回来的。是的,这太完美了。我需要对我的精确列布局和一些与问题无关的其他勘误表进行一些调整,但这正是我所要求的。给你一颗金星;非常感谢。