使用条件按值递增数字 - 数组公式

Increment Number By Value With Condition - Array Formula

我对以下条件感到困惑,只是我想要 arrayformula 或自定义公式以基于其他列中的值的特定条件约束的方式增加数字,简单地说:

如果组不变且子组不同则递增数字 1
否则,如果组没有改变并且子组没有改变(相同),则保持前一个值
否则,如果组更改而不管子组值将数字重置为 1

用于说明

** notes Number 是我想要的结果,例如我手动填写它

Group Sub-Group Animal Number
Land poisonus snake 1
land friendly dog 2
land friendly cat 2
land scary lion 3
aquatic friendly nemo fish 1
aquatic predator shark 2

更新(虚拟文件link):
https://docs.google.com/spreadsheets/d/1DAPf-DvWz50_DJ0IqAoSHbfEnfg_mN1lNXHcCjkj27M/edit#gid=0

我已经在 sheet“Erik 帮助”的单元格 D1 中输入了我的解决方案。正如我在您最初 post 的评论中所说,这是一个比我通常在免费的志愿者 运行 论坛上提供的更复杂的解决方案。我确实选择开发并与您分享该公式,但我需要将它留给您(以及任何其他可能感兴趣的未来网站访问者)来研究该公式以了解其工作原理。解释公式比写公式要花更长的时间。

公式如下:

=ArrayFormula({"Number"; IF(A2:A="",,VLOOKUP(LOWER(A2:A&B2:B),QUERY({UNIQUE(FILTER({A2:B,A2:A&B2:B},A2:A<>"")),COUNTIFS(QUERY(UNIQUE(FILTER({A2:B,A2:A&B2:B},A2:A<>"")),"Select Col1"),QUERY(UNIQUE(FILTER({A2:B,A2:A&B2:B},A2:A<>"")),"Select Col1"),SEQUENCE(COUNTA(QUERY(UNIQUE(FILTER({A2:B,A2:A&B2:B},A2:A<>"")),"Select Col1"))),"<="&SEQUENCE(COUNTA(QUERY(UNIQUE(FILTER({A2:B,A2:A&B2:B},A2:A<>"")),"Select Col1"))))},"Select Col3, Col4"),2,FALSE))})

尝试:

=INDEX(IF(A4:A="",,VLOOKUP(A4:A&B4:B, {UNIQUE(A4:A&B4:B), COUNTIFS(
 REGEXEXTRACT(UNIQUE(A4:A&"×"&B4:B), "(.*)×"), 
 REGEXEXTRACT(UNIQUE(A4:A&"×"&B4:B), "(.*)×"), 
 SEQUENCE(COUNTA(UNIQUE(A4:A&"×"&B4:B))), "<="&
 SEQUENCE(COUNTA(UNIQUE(A4:A&"×"&B4:B))))}, 2, 0)))