【问题标题】:Formula to find last blank cell in a range查找范围内最后一个空白单元格的公式
【发布时间】:2018-07-18 10:48:59
【问题描述】:

我需要创建一个公式来返回范围内最后一个空单元格的行号。例如

Cell   Data
B10    text-a
B11    text-b
B12    text-c
B13    
B14
B15    text-d
B16 
B17    text-e

在 B10:B17 范围内,我需要公式返回值 16,这是没有输入数据的最后一行。

我尝试了 INDEX/COUNTBLANK/LOOKUP 的各种排列,但没有成功。

有什么想法吗?

【问题讨论】:

标签: excel excel-formula


【解决方案1】:
=LOOKUP(2,1/(LEN(B10:B17)=0),ROW(B10:B17))

正常进入

它是如何工作的:

  • Len(rng)=0 返回一个 {TRUE;FALSE;...} 数组,具体取决于单元格是否为空

  • 1/(…) 将其转换为 {1; #DIV/0!;…} 的数组

  • 因此,数组中最后一个1会在最后一个空白单元格的位置返回。

  • LOOKUP(2,...)2 保证大于数组中的任何元素

  • ##如果 LOOKUP 函数找不到lookup_value,则该函数匹配lookup_vector 中小于或等于lookup_value 的最大值。,并且在未排序的数组中,它将是满足此条件的最后一个值。

  • 然后我们使用函数的向量形式将返回值与行号进行匹配。

使用公式评估工具了解情况可能会有所帮助。

【讨论】:

  • 效果很好。谢谢!我不确定它是如何工作的。第一个参数“2”有什么作用?第二个参数中的“1/”是什么?
  • @skyatis 解释添加到答案
  • 哇,太聪明了!
【解决方案2】:

暂不评论我说要使用数组公式:
=INDEX(B10:B17,MAX((B10:B17="")*(ROW(B10:B17)-9)))

这将返回单元格 B16 中的值,但您要求的是行号。

使用数组公式:
=MAX((B10:B17="")*(ROW(B10:B17)))

它与INDEX 相同,但不需要从单元格中返回值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2016-11-28
    • 2012-06-24
    • 2017-05-12
    • 1970-01-01
    • 2020-05-28
    相关资源
    最近更新 更多