褶-PLEATS 工作室
2024-05-28 10:25:32
最佳回答
1excel是非常强大的工具,通过一定的设定可以实现判断功能,减轻人为判断的工作量和防止出现低级的失误。if是英文“如果”的意思,通过if可以返回true(对)或者false(错),或者可以返回为空。if 语句非常强大,其构成了许多电子表格模型的基础,但也是导致许多电子表格问题的根本原因。理想情况下,if 语句应适用于最小条件(例如 male/female 和 yes/no/maybe),但是对更复杂情况求值时则需要同时嵌套几个以上的 if 函数。(excel新版本允许嵌套最多 64 个不同的 if 函数,但要正确地构建多个 if 语句需要花大量心思,并要确保其逻辑在直至结尾的每个条件下都能计算正确。还要反复检查是否出现漏洞,造成阅读不适。)现在我们来了解一下如何使用多个 if 正确创建一个复杂的嵌套 if 语句,首先我们已比较常见的学生评分标准为例,简单的判断逻辑为:1.如果 test score(单元格 d2)大于 89,则学生获得 a2.如果 test score 大于 79,则学生获得 b3.如果 test score 大于 69,则学生获得 c4.如果 test score 大于 59,则学生获得 d5.否则,学生获得 f则if语句为:=if(d2>89,"a",if(d2>79,"b",if(d2>69,"c",if(d2>59,"d","f"))))这个具体示例比较安全,因为考试成绩和字母等级之间的相关性不可能改变,所以不需要太多维护。但想想 - 如果需要在 a+、a 和 a- 等等之间划分成绩应该怎么办?现在 if 语句包含 4 个条件,需要将其重写为包含 12 个条件! 公式如下所示:=if(b2>97,"a+",if(b2>93,"a",if(b2>89,"a-",if(b2>87,"b+",if(b2>83,"b",if(b2>79,"b-", if(b2>77,"c+",if(b2>73,"c",if(b2>69,"c-",if(b2>57,"d+",if(b2>53,"d",if(b2>49,"d-","f"))))))))))))该公式仍具有准确的功能并按预期工作,但需要花很长时间编写并花更长时间进行测试,才能确保该公式可完成所需操作。另一个明显的问题是必须手动输入分数和等效字母等级。不小心输错字的几率是多少?想象一下,需要使用更复杂的条件 64 次!当然这是可能实现的,但你真的想给自己带来这种麻烦和难以察觉的可能错误吗?2下面再举一个十分常见的示例:根据销售额等级计算销售佣金如果业绩大于 15,000 则返回 20%,如果业绩大于12,500 则返回 17.5% 等等…=if(c9>15000,20%,if(c9>12500,17.5%,if(c9>10000,15%,if(c9>7500,12.5%,if(c9>5000,10%,0)))))虽然该公式与前面的“成绩”示例非常相似,但它很好地说明了维护大型 if 语句的难度 - 如果组织决定增加新的薪酬等级,甚至改变现有美元或百分比值,那么你需要做些什么?必须手动完成大量工作!提示: 为了使长公式更易于阅读,可在编辑栏中插入换行符。只需在将文本换到新行前按 alt+enter。2此文章非法爬取自百度经验3下面是一个包含混乱逻辑造成错误的佣金方案示例:d9 中的公式顺序颠倒,变为 =if(c9>5000,10%,if(c9>7500,12.5%,if(c9>10000,15%,if(c9>12500,17.5%,if(c9>15000,20%,0)))))发现问题了吗?此示例采用自下而上(从 5,000 美元到 15,000 美元)因为公式无法通过对任何超过 5,000 美元的值的第一次求值。假设销售额为 12,500 美元 - if 语句将返回 10%,因为该值大于 5,000 美元,所以公式将在第一次判断后停止。 4此类问题很严重,因为在许多情况下,此类错误容易被忽视,直到产生负面影响才会被发现。 既然知道复杂嵌套 if 语句具有严重缺陷,你能做些什么?在大多数情况下,可使用 vlookup 函数,而不是使用 if 函数构建复杂公式。若要使用 vlookup,首先需要创建一个引用表:=vlookup(c2,c5:d17,2,true)5此公式表示在 c5:c17 区域中查找 c2 的值。如果找到值,则从 d 列的同一行返回相应值。单元格 c9 中的公式为 =vlookup(b9,b2:c6,2,true)=vlookup(b9,b2:c6,2,true)类似地,此公式将在 b2:b22 区域中查找单元格 b9 的值。如果找到值,则从 c 列的同一行返回相应值。注意: 这两个 vlookup 公式在公式末尾使用 true 参数,这表示需要它们查找适当的匹配项。也就是说,它将匹配查找表中的精确值以及范围内的任何值。在这种情况下,查找表需要按升序排序(从小到大)。此处介绍了 vlookup 的更多详细信息,vlookup 肯定比一个 12 级的复杂嵌套 if 语句简单得多!还有其他一些不太明显的优点:vlookup 引用表是开放的,易于查看。条件更改后,可轻松更新表值,无需更改公式。如果不希望他人查看或更改引用表,只需将其置于其他工作表。6最后,新版本的excel支持更简单的ifs语句,可以大大简化if判断,方式如下:对于最初的包含 4 个嵌套 if 函数的成绩示例:=if(d2>89,"a",if(d2>79,"b",if(d2>69,"c",if(d2>59,"d","f"))))可使用单个 ifs 函数使其变得更简洁:=ifs(d2>89,"a",d2>79,"b",d2>69,"c",d2>59,"d",true,"f")ifs 函数十分有用,因为无需担心所有这些 if 语句和括号带来的麻烦。end 20210311