【问题标题】:Excel - Logical Formula puzzleExcel - 逻辑公式拼图
【发布时间】:2018-05-03 23:12:55
【问题描述】:

我需要在突出显示的“结果”列(请参阅嵌入式 SCREENSHOT)下提出一个公式,该公式应为每一行的单元格分配 1 或 0。公式的标准是:

  • 如果事件有多个“Str 类型”(我称它们为腿)并且其中一些腿说“是”,而其中一些对“控制存在?”说“否”那么“结果”应该是 0。

  • 如果事件有多个“Str Types”(我称它们为腿)并且所有这些腿都对“控制存在?”说“是”?那么“结果”应该是 0。

  • 如果一个事件有多个“Str Types”(我称它们为腿)并且所有这些腿都对“控制存在?”说“不”。那么“结果”应该说 1。但是,每个唯一事件 ID 应该只声明 1 值。

  • 如果事件没有多个“Str 类型”(我称它们为腿)但只有一个,并且它对“控制存在?”说“是”那么“结果”应该是 0。

  • 如果事件没有多个“Str 类型”(我称它们为腿),但只有一个,并且它对“控制存在?”说“不”那么“结果”应该是 1。

我插入了问题的屏幕截图,并在“结果”列下手动说明了所需的结果。我需要一个能提供相同结果的公式。

感谢您所做的一切!

SCREENSHOT

【问题讨论】:

  • SO 不是您发布需求列表并有人为您工作的网站。如果您不愿意展示您尝试过的*工作与否(那么我建议您将帖子移至Jobs
  • =IF(AND(B2=B3,AD2AD3),0,IF(AND(B2=B3,AD2="No",AD3="No"),1,0) )
  • 这没有帮助,因此我发布标准只是为了不误导这里的人。
  • COUNTIF() 和 COUNTIFS() 的组合会告诉您是否有多个分支。目前尚不清楚您的意思是“多个不同”腿还是该事件有多个行。

标签: excel if-statement count nested logical-operators


【解决方案1】:

您已经使这变得比它需要的更难 - 如果您查看您的规则,您可以重新陈述它们如下:

  • 结果 = 0 用于所有值,除了:
    • 当给定的Incident Id 没有“是”值时,第一次出现“否”

因此,拍摄您的示例图片并将该表放在A1:C19 范围内,您在 D 列中的Result 公式如下:

D2: =IF(COUNTIFS($A$2:$A$19,A2,$C$2:$C$19,"Yes")>=1,0,IF(A2<>A1,1,0))

分解:

COUNTIFS($A$2:$A$19,A2,$C$2:$C$19,"Yes") - 计算给定 Incident IdYes 值的数量

IF(COUNTIFS($A$2:$A$19,A2,$C$2:$C$19,"Yes")&gt;=1,0 - 如果给定的Incident Id 至少有 1 个Yes,则将值设置为0

,IF(A2&lt;&gt;A1,1,0)) - 现在我们在 ELSE 部分,这意味着没有 Yes 值,所以我们关心的是我们在事件 ID 的第一行,这意味着A 列中的值是新的,因此它不会等于它上面的值。因此,如果Incident Id 与其上方行中的值不同,则返回1,否则返回0

将此公式拖到 D 列下即可完成。

有时重新评估问题会有所帮助 - 希望这能解决问题!

【讨论】:

  • 非常感谢!我需要花一些时间来理解你的逻辑,但它似乎工作得很好!再次感谢您的帮助。这是我明天到期的可交付成果,如果没有你的帮助,我将花费数小时的时间。谢谢谢谢谢谢!
  • 很高兴这是有道理的。要记住的最重要的事情是看看是否有更简单的方法来说明问题......使用原始规则,这将是一个更糟糕/更复杂的公式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-21
相关资源
最近更新 更多