Excel - 逻辑公式谜题
Excel - Logical Formula puzzle
我需要在突出显示的 "Result" 列(参见嵌入的屏幕截图)下想出一个公式,该公式应为每一行的单元格分配 1 或 0。公式的标准是:
如果一个事件有多个 "Str Types"(我称之为腿)并且其中一些腿说 "Yes" 而其中一些说 "No" 到 "Control Exist?" 然后 "Result" 应该说 0.
如果一个事件有多个 "Str Types"(我称之为腿)并且所有这些腿都说 "Yes" 到 "Control Exist?" 那么 "Result" 应该说 0。
如果一个事件有多个 "Str Types"(我称之为腿)并且所有这些腿都说 "No" 到 "Control Exist?" 那么 "Result" 应该比如说 1。但是,对于每个唯一的事件 ID,该 1 值应该只声明一次。
如果一个事件没有多个 "Str Types"(我称之为腿)但只有一个并且它说 "Yes" 到 "Control Exist?" 那么 "Result" 应该说 0.
如果一个事件没有多个 "Str Types"(我称之为腿)但只有一个并且它说 "No" 到 "Control Exist?" 那么 "Result" 应该说 1.
我插入了问题的屏幕截图,并且在 "Result" 列下手动说明了所需的结果。我需要一个能提供相同结果的公式。
感谢您所做的一切!
SCREENSHOT
你已经把这个 变得比它需要的更难了 - 如果你看看你的规则,你可以重新陈述它们如下:
- 结果 =
0
对于所有值,除了:
- 当给定
Incident Id
没有 "Yes" 值时第一次出现 "No"
因此,拍摄样本图片并将 table 置于 A1:C19
范围内,D 列中的 Result
公式如下:
D2: =IF(COUNTIFS($A:$A,A2,$C:$C,"Yes")>=1,0,IF(A2<>A1,1,0))
分解:
COUNTIFS($A:$A,A2,$C:$C,"Yes")
- 计算给定 Incident Id
的 Yes
值的数量
IF(COUNTIFS($A:$A,A2,$C:$C,"Yes")>=1,0
- 如果给定的 Incident Id
至少有 1 个 Yes
,则将值设置为 0
,IF(A2<>A1,1,0))
- 现在我们在 ELSE 部分,这意味着没有 Yes
值,所以我们只关心我们在事件的第一行Id,这意味着 A 列中的值是新的,因此它不会等于它上面的值。因此,如果 Incident Id
与其上方行中的值不同,则 return 1
,否则 return 0
.
将此公式拖到 D 列下即可完成。
有时它有助于重新评估问题 - 希望这能解决问题![=27=]
我需要在突出显示的 "Result" 列(参见嵌入的屏幕截图)下想出一个公式,该公式应为每一行的单元格分配 1 或 0。公式的标准是:
如果一个事件有多个 "Str Types"(我称之为腿)并且其中一些腿说 "Yes" 而其中一些说 "No" 到 "Control Exist?" 然后 "Result" 应该说 0.
如果一个事件有多个 "Str Types"(我称之为腿)并且所有这些腿都说 "Yes" 到 "Control Exist?" 那么 "Result" 应该说 0。
如果一个事件有多个 "Str Types"(我称之为腿)并且所有这些腿都说 "No" 到 "Control Exist?" 那么 "Result" 应该比如说 1。但是,对于每个唯一的事件 ID,该 1 值应该只声明一次。
如果一个事件没有多个 "Str Types"(我称之为腿)但只有一个并且它说 "Yes" 到 "Control Exist?" 那么 "Result" 应该说 0.
如果一个事件没有多个 "Str Types"(我称之为腿)但只有一个并且它说 "No" 到 "Control Exist?" 那么 "Result" 应该说 1.
我插入了问题的屏幕截图,并且在 "Result" 列下手动说明了所需的结果。我需要一个能提供相同结果的公式。
感谢您所做的一切!
SCREENSHOT
你已经把这个 变得比它需要的更难了 - 如果你看看你的规则,你可以重新陈述它们如下:
- 结果 =
0
对于所有值,除了:- 当给定
Incident Id
没有 "Yes" 值时第一次出现 "No"
- 当给定
因此,拍摄样本图片并将 table 置于 A1:C19
范围内,D 列中的 Result
公式如下:
D2: =IF(COUNTIFS($A:$A,A2,$C:$C,"Yes")>=1,0,IF(A2<>A1,1,0))
分解:
COUNTIFS($A:$A,A2,$C:$C,"Yes")
- 计算给定 Incident Id
Yes
值的数量
IF(COUNTIFS($A:$A,A2,$C:$C,"Yes")>=1,0
- 如果给定的 Incident Id
至少有 1 个 Yes
,则将值设置为 0
,IF(A2<>A1,1,0))
- 现在我们在 ELSE 部分,这意味着没有 Yes
值,所以我们只关心我们在事件的第一行Id,这意味着 A 列中的值是新的,因此它不会等于它上面的值。因此,如果 Incident Id
与其上方行中的值不同,则 return 1
,否则 return 0
.
将此公式拖到 D 列下即可完成。
有时它有助于重新评估问题 - 希望这能解决问题![=27=]