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

时间:2015-02-05 08:42:09

标签: excel google-sheets excel-formula

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

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

    | Row nbr |  B col. | [Explanation]                       |
    |---------|:-------:|-------------------------------------|
    | R01     | Value 1 |                                     |
    | R02     | Value 1 |                                     |
    | R03     | Value 2 |                                     |
    |         | Value 3 | Col. B value = 3 => Col. A is empty |
    | R04     | Value 2 | Numbering takes up                  |
    | R05     | Value 1 |                                     |
    |         | Value 3 | Col. B value = 3 => Col. A is empty |
    | R06     | Value 2 | Numbering takes up                  |
    | ETC.    |         |                                     |
    

    这里,条件(跳过编号)将是“IF对应B单元格=值3”(然后跳过编号)

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

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

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

    基本上,我需要调整(或更改)此代码,以便除了相对编号之外,对于行N,如果对应的B列单元格值= XYZ,则列单元格为空(与编号对齐):该行为被跳过,并且编号从B单元格值≠XYZ的下一行的N上取回。

    这是Google spreadsheet example

    很多TIA。

1 个答案:

答案 0 :(得分:1)

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

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

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

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