根据所选选项增加 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
,则相应的值应该来自所有先前不是 1
或 2
的值的计数。所以 COUNTIFS 应该检查选项是否不是 1
或 2
。像这样:
29999 + COUNTIFS(A2:A,"<>Option 1",A2:A,"<>Option 2",ROW(A2:A), "<="&ROW(A2:A))
- 最后,如果选项是
1
或 2
,则返回值应来自所有先前 1
和 2
值的 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)))))
我正在尝试更新一个基于多个条件递增一个 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
,则相应的值应该来自所有先前不是1
或2
的值的计数。所以 COUNTIFS 应该检查选项是否不是1
或2
。像这样:
29999 + COUNTIFS(A2:A,"<>Option 1",A2:A,"<>Option 2",ROW(A2:A), "<="&ROW(A2:A))
- 最后,如果选项是
1
或2
,则返回值应来自所有先前1
和2
值的 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)))))