【问题标题】:How do I search for previous non-empty cell in column in Excel?如何在 Excel 的列中搜索以前的非空单元格?
【发布时间】:2020-04-30 00:43:46
【问题描述】:

非常感谢帮助我找到一个 Excel 公式,该公式将搜索列中的上一个(不是最后一个)非空单元格,然后加 1。空单元格没有始终如一地分开。

ColA
1 
2

3

4
5
6


7
8

我更喜欢公式,但我对 VBA 持开放态度。任何建议将不胜感激。谢谢!

【问题讨论】:

  • 输出应该是什么?你开始的数据是什么?上面哪个数字是公式应该产生的?作为猜测,在A2=MAX($A$1:A1)+1 然后复制到其他单元格到你心目中的内容。

标签: excel search excel-formula


【解决方案1】:

假设 A 列中的值可以排序或未排序。

上一个列 + 1 = 上一个非空单元格值 + 1

=IF(ROW(B3)=MIN(ROW($B$3:$B$14)),B3,OFFSET($B$2,MAX(IF(ISBLANK(B2:B$3)=TRUE,0,ROW(B2:B$3)))-ROW($B$2),0)+1)

注意事项:

对于第一行(没有前一个单元格),设置单元格的默认值。 即使对于空白单元格(可修改),也会计算所有“previous+1”值。

Sheet

【讨论】:

    【解决方案2】:

    您可能想考虑这个公式,在单元格 A3 中输入并从那里复制下来。

    =LOOKUP(2,1/(ISNUMBER(A$1:A2)),A$1:A2)+1
    

    这个公式的优点也是它的缺点:它允许在其上方混合数字和文本,将找到最后一个数字并将其加 1。但是,如果没有数字,它会抛出一个错误,很容易用 IFERROR() 捕获,但这会使公式太笨拙。所以我建议在第3行输入,在A2输入一个起始数字。

    @BigBen 对 MAX() 函数的推荐是我之前在遇到类似需求时使用的,但 LOOKUP() 在某些情况下可能会表现得更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      相关资源
      最近更新 更多