在Excel表中的行号

我有以下基本表格:

1| 2| Title.... 3| 4| 5| | Row Index | Type | Etc... | 6| | 1 | abc | ..... | 7| | 2 | def | ..... | 8| | 3 | ghi | ..... | 9| | 4 | jkl | ..... | 

请注意,该表不在Excel行1上开始。技术上ROW()-5将工作,但我不想硬开始表的实际行开始。

我的Row Index公式是:

 =ROW()-CELL("row")+1 

这工作正常,除了当你编辑表中的另一个单元格。 看来公式假设你编辑的行是索引0,并从那里开始行计数。

例如,如果我要编辑上表中第3行的单元格,则Row Index值将如下所示:

 | Row Index | Type | Etc... | | -1 | abc | ..... | | 0 | def | ..... | | 1 | ghi | ..... | | 2 | jkl | ..... | 

每次编辑之后,我认为必须重新编辑最上一行中的单元格,以使Row Index值再次正确。

有一个可靠的方式来显示表中的行号?

如果它是一个实际的Excel表(插入选项卡>表):

 =ROW()-ROW(Table1[#Headers]) 

要么

 =ROW()-ROW(Table1)+1 

否则,你可以使用绝对地址:

 =ROW()-ROW($5:$5) 

删除CELL("row") ,只使用公式

 =ROW() - 5 

ROW函数返回包含公式的单元格的行号,这就是你想要的。

另一方面, CELL函数会返回有关上次更改的单元格的信息 ,这就是为什么您会看到奇怪的行为。

CELL(info_type,[参考])

  • 参考可选。 您想要的信息的单元格。 如果省略,则返回Info_type参数中指定的最后一个已更改单元格的信息 。 …

即使CELL返回关于当前单元格的信息,您将从ROW() - CELL("Row", <current_cell>) + 1得到的值是常量1因为这两个函数相互抵消。