Google 电子表格相对行编号 + 跳过空单元格

Google spreadsheet relative row numbering + skip empty cell

使用 Google 电子表格,我需要一列来显示相关行编号,以便:

  1. 电子表格的行可以四处移动,编号保持相对(这意味着如果我在第 4 行和第 5 行之间移动第 12 行,则此行变为第 5 行,前 5 行变为第 6 行,依此类推)
  2. 使用基于给定行中单元格值的条件,行编号单元格可能为空(或不为空);如果为空,则跳过该行号,并在条件不匹配的下一行中重新编号。

这是一个例子:

|行编号 | B 上校| 【说明】 |
|--------|:--------:|---------------------------- ------|
| R01 |值 1 | |
| R02 |值 1 | |
| R03 |值 2 | |
| |值 3 | Col. B 值 = 3 => Col. A 为空 |
| R04 |值 2 |编号占用 |
| R05 |值 1 | |
| |值 3 | Col. B 值 = 3 => Col. A 为空 |
| R06 |值 2 |编号占用 |
|等等。 | | |

此处,条件(跳过编号)为 "IF corresponding B cell = Value 3"(然后跳过编号)

现在,我正在使用符合上述要求 #1 的公式:

=ROW(INDIRECT("A"&ROW()&":A"))-9

(尾随的“-9”只是一个偏移量,因此编号可以从第 10 行的 01 开始)。

所以基本上,我需要调整(或更改)此代码,以便除了相对编号之外,对于第 N 行,如果相应的 B 列单元格值 = XYZ,则 A 列单元格为空(相对于编号):行被跳过,编号从下一行的 N 开始,其中 B 单元格值 ≠ XYZ。

这里是 Google spreadsheet example

许多 TIA。

我强烈建议不要在公式中明确指定偏移量的情况下使用 ROW(),因为如果您在 table 上方 delete/add 行,则必须调整所有单元格中的公式。这是我的解决方案(第 A:A 列是行号,B:B - 值,开始在单元格 A10 中添加公式):

=IF($B10="Value 3","",ROWS($B:$B10)-COUNTIF($B:$B10,"Value 3"))

或者如果您坚持相对行(将 10 更改为距顶部的偏移量):

=IF(INDIRECT("B"&ROW())="Value 3","",ROWS(INDIRECT("B"&10&":B"&ROW()))-COUNTIF(INDIRECT("B"&10&":B"&ROW()),"Value 3"))