返回包含数据的最后一个单元格的列标题

时间:2017-06-09 19:53:42

标签: excel excel-formula excel-indirect

我正在处理电子表格并尝试创建公式以使用数据计算最后一个单元格,然后返回该单元格的列标题。

这里有两个部分:

  1. 找到包含数据的第一个单元格,返回列标题
  2. 查找包含数据的最后一个单元格,返回列标题
  3. 我通过以下方式解决了1:

    =INDIRECT(ADDRESS(1,COLUMN((INDEX(H223:S223,MATCH(TRUE,INDEX((H223:S223<>0),0),0))))))
    

    但我还没有能够解决第二部分问题。我在网上找到了以下解决方案,但它们并不是很正确......

    =(ADDRESS(ROW(H223:S223)+ROWS(H223:S223)-1,COLUMN(H223:S223)+COLUMNS(H223:S223)-1))
    

    ^返回范围的最后一个单元格引用,不检查单元格是否有数据。

    =LOOKUP(2,1/(H228:S228<>""),H228:S228)
    

    ^这个更有希望。此公式返回包含范围中数据的最后一个单元格的值。但我无法使用我用于第一个公式的INDIRECT / ADDRESS / COLUMN函数。

    任何人都可以帮助我吗?谢谢!

    仅供参考 - 列标题为月,单元格为$ projection。这些公式应该可以帮助我理解下个财政年度的月流量是多少。

2 个答案:

答案 0 :(得分:0)

要使用值返回最后一个单元格的列标题,请使用以下命令:

=IFERROR(INDEX(H1:S1,MAX(IF(LOOKUP(2,1/(H228:S228<>""),H228:S228)=H228:S228,COLUMN(H228:S228),0))),"")

数组公式按 Ctrl + Shift + 同时输入

如果您有重复项,则为数组公式 H1:S1是标题行
H228:S228最后一行有数据
查找将找到包含数据的最后一个单元格 索引将返回相应的标题

答案 1 :(得分:0)

=LOOKUP(2,1/(H228:S228<>""), H228:S228)
'                            ^^^^^^^^^^

您的LOOKUP公式是个好主意,但需要稍加修改才能从标题行而不是调查行返回值:

=LOOKUP(2,1/(H228:S228<>""), H1:S1)
'                            ^^^^^^