在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
因为这两个函数相互抵消。