IF公式计算不正确

时间:2017-05-25 14:49:50

标签: excel

我已经构建了一个公式,该公式应该吐出一个数字答案,这个答案基本上是一个简单的和公式,IF语句将数值赋给定性输入。对于长度道歉,我正在考虑许多不同的因素。公式是:

单元格<div class="container-fluid"> <div class="row"> <!-- Sidebar --> <div class="col-md-2">Sidebar</div> <!-- Page content --> <div class="col-md-10"> <div class="container-fluid"> <div class="row"> <!-- Your page content here --> </div> </div> </div> </div> </div> 包含:

F36

=IF(F32="Medium-High", 18, IF(F32="High", 24, SUM(F16, IF(F20="High",5,IF(F20="Medium-High",4,IF(F20="Medium",3,IF(F20="Low-medium",2,IF(F20="Low",1))))),IF(F24="High",5,IF(F24="Medium-High",4,IF(F24="Medium",3,IF(F24="Low-Medium",2,IF(F24="Low",1))))),IF(F28="High",5,IF(F28="Medium-High",4,IF(F28="Medium",3,IF(F28="Low-Medium",2,IF(F28="Low",1,IF(F28="N/A",0)))))),IF(F30="N/A",0,IF(F30="High",5,IF(F30="Medium-High",4,IF(F30="Medium",3,IF(F30="Low-Medium",2,IF(F30="Low",1)))))),IF(F32="High",5,IF(F32="Medium-High",4,IF(F32="Medium",3,IF(F32="Low-Medium",2,IF(F32="Low",1,IF(F32="N/A",0))))))))) - 包含1到5之间的值

F16 - 下拉菜单,您选择的值是:低,中低,中等,中高,高;

现在,根据测试输入,其中:F20, F24, F28, F30, F32 = 5,F16 =低(1),F20 =中 - 高(4),{{1} } = N / A(0),F24 =中(3),F28 =中(3)我在F30的输出是11,但是做简单的添加,我应该在5 + 1 + 4 + 0 + 3 + 3 = 16。

我在哪里失去5分?

3 个答案:

答案 0 :(得分:0)

调试嵌入式IF只是地狱。

您正在做的是重新编码5级关卡。您可以使用替代解决方案。 一个。将5个文本值(从“低”到“高”)放在工作表中的某个位置,比如T1:T5,甚至更好,给这个范围命名 然后您可以使用

检索搜索的值
    MATCH(F20,$T$1:$T$5,0)

湾如果它适合您的使用,您可以使用组合框,提供5个选项并在链接的单元格中给出所需的答案(从1到5)。

(也许不是答案,但我无法发表评论......)

答案 1 :(得分:0)

(这应该是评论,但我需要答案的格式化功能)

这是你公式的当前逻辑:

  • 检查单元格F32:“中 - 高”输出18,“高”输出24
  • 如果F32不是那些,那么请注意以下内容:
    • F16
    • 查找F20,F24,F28,F30和 F32 ,其中每个查找为:
      • “高”= 5
      • “中高”= 4
      • “中”= 3
      • “低中”= 2
      • “低”= 1

我觉得很奇怪,你首先检查单元格F32,然后在总和中再次检查它。由于此当前逻辑产生不正确的结果,我们无法真正建议如何在没有样本数据和预期结果的情况下修复它。我的猜测是你通过在那里包含F32来总结太多的查找,但这只是没有数据的推测。

答案 2 :(得分:0)

您可以创建一个表格,为每个定性输入分配数字输出,并使用vlookup获取输出。例如,对于在K19:L25上创建的表,可以使用以下内容:

=SUM(F16,VLOOKUP(F20,K19:L25,2,FALSE),VLOOKUP(F24,K19:L25,2,FALSE),VLOOKUP(F28,K19:L25,2,FALSE),VLOOKUP(F30,K19:L25,2,FALSE),VLOOKUP(F32,K19:L25,2,FALSE))

修改 尝试了你的公式,它给出了正确的结果。也许你在F16的5不是数值?您可以使用

进行测试
=ISNUMBER(F16) 

如果它是一个数字,它应该为TRUE。