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"))
上可以看出
现在我需要更进一步,并在多个 (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 列中的布尔条件尽可能复杂,而不会有太大困难。
在
基本上,如果相邻的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"))
上可以看出
现在我需要更进一步,并在多个 (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 列中的布尔条件尽可能复杂,而不会有太大困难。