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

Google spreadsheet: relative rows numbering based on multiple conditions

, Taosique中提供了一种解决方案,使编号单元格在一个条件下为空,跳过此单元格的编号,并在后续相关单元格中取回它,这样行就可以移动,并且(相对)编号已调整。

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

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

..在example spreadsheeet.

上可以看出

现在我需要更进一步,并在多个 (OR) 条件下应用相同的逻辑,因此如果 B 单元格值 = "Value 3" OR "Value 2"(不仅仅是"Value 3").

我在这里尝试调整公式:

=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"))

抱歉,如果我遗漏了显而易见的内容。

合并后的公式会比较长,以后很难维护和更新。问题是您生成了两次相同的查询。

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

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