【问题标题】:Increment 2 different Ids based on selected option根据所选选项增加 2 个不同的 ID
【发布时间】:2020-07-22 08:40:19
【问题描述】:

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

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

谁能介绍一下这个场景:谢谢

说明我的情况的电子表格链接here

【问题讨论】:

    标签: if-statement google-sheets counter google-sheets-formula array-formulas


    【解决方案1】:
    • 你必须先检查该值是否为Option 1/Option 2。不使用OR(不能在数组上迭代)的一种方法是:
    IF(A2:A="Option 1",0,1)*IF(A2:A="Option 2",0,1)
    
    • 接下来,您可以将其包装成另一个IF,以便返回值取决于前一个条件是否为真。因此,如果选项不是1 也不是2,则对应的值应该来自所有先前的不是12 的值的计数。所以COUNTIFS 应该检查选项是否不是1 也不是2。像这样:
    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))),""))
    

    【讨论】:

    • @lamblichus 我之前已经发布了此评论,但我回来时没有找到它:非常感谢您的回复以及实现目标的分步解释
    【解决方案2】:

    轻微的选择:

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

    【讨论】:

    • 感谢您提出另一种方法,有助于了解如何使用不同方法解决问题
    猜你喜欢
    • 2017-09-30
    • 2020-02-18
    • 2017-09-25
    • 2017-06-09
    • 2011-03-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多