【问题标题】:Using ArrayFormula to find the latest date in a range of columns使用 ArrayFormula 查找一系列列中的最新日期
【发布时间】:2021-08-01 07:11:11
【问题描述】:

我想在一个 Google 表格中自动连续查找最新日期,该表格包含几个可能的日期列。我的虚拟表格在这里:

https://docs.google.com/spreadsheets/d/1j9pRECnAKtKtvAfhMvLv93-u6_kwIrFZg3RY3jSkpkU/edit?usp=sharing

日期列 (E:G) 在填写特定行的日期之前是空白的(每一行都是一个人,日期是他们做某件事 A B 或 C 的日期)。我目前有一列“lastPersonContact”,它使用 MAX() 计算该行范围内的最新日期。我希望这个公式自动传播到新行,因为我的数据集非常大,并且一直在添加任意数量的行。问题是我只知道如何使用 ArrayFormula 来计算任一行的最大值,或所有行中的整个列范围,这意味着我的 ArrayFormula 代码为所有行返回相同的值(所有日期的最大值所有行)而不是该特定行的最新日期。

您可以在 O 列中看到我尝试使这项工作(不起作用)。我想要的输出在 D 列中是正确的,但不会自动填写。

【问题讨论】:

    标签: google-sheets google-sheets-formula array-formulas


    【解决方案1】:

    我认为这应该适合你。它使用 SPLIT() 和 FLATTEN() 构建一个二维数组,然后查询以找到每行的最大值。然后在该查询中对该行进行 vlookup。

    =ARRAYFORMULA(IF(A2:A="",,VLOOKUP(ROW(A2:A),QUERY(SPLIT(FLATTEN(ROW(A2:A)&"|"&E2:G),"|",0,0),"select Col1,MAX(Col2) group by Col1"),2,0)))
    

    【讨论】:

    • 谢谢你 - 有没有办法把它放在(冻结的)第一行?我需要定期重新排序这个数据集,这似乎打破了这个解决方案。编辑:没关系!我得到了它的标题!感谢您的帮助!
    猜你喜欢
    • 2020-04-28
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多