根据所选选项增加 2 个不同的 ID

Increment 2 different Ids based on selected option

我正在尝试更新一个基于多个条件递增一个 ID 的工作解决方案,因此我使用 ROW() 函数没有任何问题。但现在我正在尝试根据所选选项增加 2 个不同的 ID,如下面的屏幕截图所示,到目前为止我已经开始执行以下操作:

=ARRAYFORMULA(IF(LEN(A2:A),COUNTIFS(A2:A, A2:A, ROW(A2:A), "<="&ROW(A2:A),A2:A,"Option 2"),))

任何人都可以解释一下这种情况:谢谢

Link 说明我情况的电子表格here

  • 您必须先检查该值是否为Option 1/Option 2。一种不使用 OR(不能在数组上迭代)的方法是这样的:
IF(A2:A="Option 1",0,1)*IF(A2:A="Option 2",0,1)
  • 接下来,您可以将其包装到另一个 IF 中,以便返回值取决于前面的条件是否为真。因此,如果 option 不是 1 也不是 2,则相应的值应该来自所有先前不是 12 的值的计数。所以 COUNTIFS 应该检查选项是否不是 12。像这样:
29999 + COUNTIFS(A2:A,"<>Option 1",A2:A,"<>Option 2",ROW(A2:A), "<="&ROW(A2:A))
  • 最后,如果选项是 12,则返回值应来自所有先前 12 值的 hte 计数。由于这是一个 OR 条件,您必须对两个不同的 COUNTIFS 求和,一个用于选项 1,一个用于 2。可能是这样的:
9999 + COUNTIFS(A2:A,"=Option 1",ROW(A2:A), "<="&ROW(A2:A)) + COUNTIFS(A2:A,"=Option 2",ROW(A2:A), "<="&ROW(A2:A))
  • 把它们放在一起,可能是这样的:
=ARRAYFORMULA(IF(LEN(A2:A),IF(IF(A2:A="Option 1",0,1)*IF(A2:A="Option 2",0,1),
29999 + COUNTIFS(A2:A,"<>Option 1",A2:A,"<>Option 2",ROW(A2:A), "<="&ROW(A2:A)),
9999 + COUNTIFS(A2:A,"=Option 1",ROW(A2:A), "<="&ROW(A2:A)) + COUNTIFS(A2:A,"=Option 2",ROW(A2:A), "<="&ROW(A2:A))),""))

略有选择:

=ARRAYFORMULA(IF(A2:A="",,IF(REGEXMATCH(A2:A, H2&"$|"&H3&"$"),
 9999+COUNTIFS(REGEXMATCH(A2:A, H2&"$|"&H3&"$"),
               REGEXMATCH(A2:A, H2&"$|"&H3&"$"), ROW(A2:A), "<="&ROW(A2:A)), 
 29999+COUNTIFS(A2:A, "<>"&H2, A2:A, "<>"&H3, ROW(A2:A), "<="&ROW(A2:A)))))