Google电子表格:基于多个条件的相对行编号

时间:2015-02-06 09:33:28

标签: excel google-sheets excel-formula

this former post中,Taosique提供了一个解决方案,使编号单元格在一个条件下为空,跳过此单元格的编号,并将其带回后续相关单元格,行可以是四处移动,(相对)编号改编。

基本上,如果相邻B单元格=值3,则使A单元格为空,并跳过编号;然后收回相对编号。

| 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(INDIRECT("B"&ROW())="Value 3","",ROWS(INDIRECT("B"&10&":B"&ROW()))-COUNTIF(INDIRECT("B"&10&":B"&ROW()),"Value 3"))

..可以在example spreadsheeet上看到。

现在我需要更进一步,并在多个(OR)条件下应用相同的逻辑,因此如果B单元格值="值3"则跳过编号。或"价值2" (不只是"值3和#34;)。

我尝试在这里调整公式:

=IF(OR(INDIRECT("B"&ROW())="Value 3";INDIRECT("B"&ROW())="Value 2";"";ROWS(INDIRECT("B"&10&":B"&ROW()))-COUNTIFS(INDIRECT("B"&10&":B"&ROW());"Value 3";(INDIRECT("B"&10&":B"&ROW());"Value 2"))))

第一个OR条件似乎没问题;我将COUNTIF切换到COUNTIFS,因此我可以使用多个条件,但这会产生错误。也许是因为我混合了COUNTIFS和INDIRECT?因为即使这最后一部分也会引发错误:

=COUNTIFS(INDIRECT("B"&10&":B"&ROW());"Value 3";(INDIRECT("B"&10&":B"&ROW());"Value 2"))

很抱歉,如果我错过了明显的内容。

1 个答案:

答案 0 :(得分:0)

组合公式将足够长,以至于将来难以维护和更新。问题是您要生成两次相同的查询。

我建议在B处插入一个新列(将当前列B推送到C),然后编写一个公式,例如=IF(OR(C2="value 2",C2="value 3"),"skip","")

然后,为了清楚起见,将原始公式中的"value 3"更改为"skip",并且(如果您愿意)隐藏辅助列B.这样可以更方便地为您提供公式维护,你可以使B列中的布尔条件尽可能复杂,没有太大的困难。