【问题标题】:Return most recent non blank cell value in a given month and year返回给定月份和年份中最近的非空白单元格值
【发布时间】:2018-06-17 19:55:22
【问题描述】:

我想在下表中查找 2017 年 12 月的最新非空白条目:

在本例中,返回值为 3,即日期标题 18-Dec-17 下的条目,因为 25-Dec-17 是空白/非数字。

【问题讨论】:

    标签: excel indexing excel-formula match


    【解决方案1】:

    试试,

    =INDEX(2:2, AGGREGATE(14, 6, COLUMN(A:F)/((MONTH(A1:F1)=12)*(YEAR(A1:F1)=2017)*SIGN(LEN(A2:F2))), 1))
    

    【讨论】:

    • 感谢您的回答 Jeeped。效果很好。与@barry houdini 的较短方法相比,这种方法有什么优势吗?
    • 在excel中完成同样的事情不可避免地有几种方法,每个人都有自己喜欢的方法和功能。文本转换和比较可能比整数乘法和错误控制稍慢,但我必须运行速度测试才能找到答案。
    【解决方案2】:

    我会这样做:

    =+INDEX(A2:F2,1,MATCH(TRUE,INDEX(ISBLANK(A2:F2),0,0),0)-1)
    

    在您的情况下将返回 3。如果您有更长的数组,只需更新 'A2:F2' 部分。

    【讨论】:

      【解决方案3】:

      您可以使用LOOKUP 来执行此操作,例如

      =LOOKUP(2,1/(TEXT(A1:Z1,"mmm-yy")="Dec-17")/(A2:Z2<>""),A2:Z2)

      【讨论】:

      • 这很好用,但我不明白语法以及为什么查找值 2 返回正确的结果。如果你能解释一下,我将不胜感激。为了解决这个问题,我修改了你的方程,只包含列 A:F 并且我评估了每个参数: =LOOKUP(2,{#DIV/0!,1,1,1,#DIV/0!,#DIV /0!},{2,1,2,3,0,5})
      • 如您所见,第一个数组仅在满足条件时返回 1 或错误。当查找值是大于该数组中任何数字的数字时(因为它总是在此处查找值 2),则它与第一个数组中的最后一个数字(第三个 1)匹配,并且相应定位的数字从第二个数组。我会在我的答案中添加一些解释
      猜你喜欢
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多