具有2种可能输出的多个IF和状态

时间:2017-11-22 06:25:49

标签: excel if-statement excel-formula

杰瑞,回答你的第一个评论,不,结果应该是PASS,因为B5的值为-12790而C5的值为-12790,使得他们的绝对最大值为0.当我之前询问时,我改变了C5到0并且将B5留在-12790,这使得绝对最大差值为12790.这种情况应该是失败。我为没有详细解释而道歉。解释起来有点棘手,但我非常感谢你对此的帮助。我认为我们正走在正确的轨道上,而且在我有空余时间的时候,我一直在努力想出这个公式。让我试着解释一下我在这里想要完成的事情。第3行有4个单元标记为Lw_Send / Lw_Return / Up_Send / Up_Return。这4只手是一个机器人的一部分,每只手必须单独教授。每只手都有4个可移动的轴或可调节的关节。 4个关节是X轴(正向和反向运动),Z轴(垂直运动),Y轴(水平或左右运动)和Theta轴(旋转运动)。我在这个问题上关注的唯一轴是Y轴和θ轴。这两个轴对彼此有直接影响,这意味着如果我将Y轴向一个方向移动,它将移动我的θ轴,反之亦然。这就是我们在调整Y轴和θ轴时有规则的原因。当我完成Lw_Send手的教学(B5:B9)时,我开始教Lw_Return手(C5:C9)。在我完成这手教学之前,我必须将我的θ和Y轴教学值与我的第一手教学值Lw-Send手进行比较。例如,如果B5的示教值为-12790且C5的示教值为-12792,这意味着我的两个手θ轴之间的绝对最大差值为2.当θ差异为2时,当我看三文鱼时彩色三角洲表,它说我的Y轴教导第一手和第二手之间的差异必须是15-20的绝对最大差异。这意味着如果B5是-75506那么单元格C5可以在[-75491的范围内]至-75486]或[-75521至-75526]。最终目标当然是手之间没有偏差。这几乎是不可能的。一旦完成这两手牌,我必须对第三手和第四手应用同样的规则。当我继续教每一只手时,我必须将我的theta和水平教导值与之前的所有手进行比较。这就是使用绝对最大差异非常重要的原因。一方面可能更积极,另一方面可能更负面。如果这更好地解释了我想要实现的目标,请告诉我。再一次,我非常感谢你对这场噩梦的帮助

一直在撞墙试图弄清楚这个。我试图在一个单元格中有多个IF AND语句。

1。)当B7:C7的绝对最大值小于或等于2时,B5:C5的绝对最大值必须小于或等于5.是否符合标准将显示为PASS或失败。这是第一条规则。

2.)同一单元格中的第二个规则需要是B5的绝对最大值:当B7:C7的绝对最大值在3到8之间时,C5必须小于或等于4。

3.)第三条规则必须是B5的绝对最大值:当B7:C7的绝对最大值在9到14之间时,C5必须小于或等于3.

4。)第四条规则必须是B5的绝对最大值:当B7:C7的绝对最大值在15到20之间时,C5必须小于或等于2.

5.)第五条规则必须是B5的绝对最大值:当B7:C7的绝对最大值在21到26之间时,C5必须小于或等于1.

6。)第六条规则必须是B5的绝对最大值:当B7:C7的绝对最大值在27到30之间时,C5必须等于0。

他们是我的电子表格的剪辑。如果你看三角洲Y和delta theta的鲑鱼色表,你可以看到我的规则中的值如何应用于单元格B5:C5和B7:C7。

我非常感谢任何帮助:)

到目前为止,这是前两条规则的内容:

=IF(ISBLANK(C5)," ",IF(OR(AND(MAX(ABS(B5:C5<=5))),(MAX(ABS(B7:C7<=2))),"PASS","FAIL",OR(MAX(ABS(B5:C5<=4))),(MAX(ABS(B7:C7<=8)))),"PASS","FAIL"))

截图 Robot Teaching Data

3 个答案:

答案 0 :(得分:0)

这样的事情(忽略ISBLANK(C5)并专注于不同的标准对)

=IF(OR(
          AND(MAX(ABS(B5:C5))>5, MAX(ABS(B7:C7))<=2),
          AND(MAX(ABS(B5:C5))>4, MAX(ABS(B7:C7))>=3, MAX(ABS(B7:C7))<=8)
      ),"FAIL","PASS")

使用 Ctrl + Shift + 输入,因为它是一个数组公式。

基本上,如果OR()的任何部分评估为true,则触发FAIL结果。

注意:输入复杂的公式时,您可以在公式栏中使用Ctrl + Enter来跨多行排列和缩进公式:它使得更容易理解。向下拖动公式栏的底部,以便您可以看到整个事物。

答案 1 :(得分:0)

就像我在评论中提到的那样,我会使用查找表:

enter image description here

如果有匹配&#39;从表中可以看出,SUMPRODUCT会给出一个大于0的数字,因此会传给&#39; Pass&#39;

图中的公式如下:

=IF(SUMPRODUCT((ABS(MAX(A11:B11))<=$B$3:$B$8)*(ABS(MAX(C11:D11))>=$C$3:$C$8)*(ABS(MAX(C11:D11))<=$D$3:$D$8))>0,"Pass","Fail")

乘法等同于&#39; AND&#39;,因此在上文中,3个不同的条件彼此相互对应。如果从查找表中的任何一行传递了所有3个,那么公式将返回&#39; Pass&#39;。

编辑:如果你的意思是“最大绝对数”。而不是绝对最大值,那么你需要这个公式(这个必须是使用Ctrl + Shift + Enter输入的数组输入公式):

=IF(SUMPRODUCT((MAX(ABS(A11:B11))<=$B$3:$B$8)*(MAX(ABS(C11:D11))>=$C$3:$C$8)*(MAX(ABS(C11:D11))<=$D$3:$D$8))>0,"Pass","Fail")

enter image description here

答案 2 :(得分:0)

试试这个公式

=IF(ABS(B5-C5)<=6-MATCH(ABS(B7-C7),{0,3,9,15,21,27}),"Pass","Fail")

可能会有一些“边缘情况”无效 - 请测试并告诉我。

此公式使用B7函数中C7MATCH的绝对差值来查找B5和{的绝对差值需要满足的值{1}}