跳到正文
IGCSE·Tuition
资讯与通信科技(ICT) · 课程

选择合适的逻辑函数

用文字写成的规则,必须变成对每一行都给出同样答案的公式。

本页内容
  1. 怎样选择函数?
  2. 例题
  3. 要留意的错误
  4. 自我检测
  5. 接下来学什么?

逻辑函数测试一个条件,并根据它是否成立给出结果。IF 处理一个测试、两种结果。AND 和 OR 用来组合测试。

嵌套 IF 处理多于两种的结果。本课的分数都是虚构的。

怎样选择函数?

把规则念出来,数一数有几种结果。

  • 两种结果,一个测试: 用 IF。格式:=IF(test, 成立时的结果, 不成立时的结果)。
  • 两种结果,每个测试都必须成立: 把 AND(test1, test2) 放进 IF。
  • 两种结果,任一测试成立即可: 把 OR(test1, test2) 放进 IF。
  • 三种或以上结果: 嵌套 IF,并先检查最严格的测试。

例题

规则:分数 50 或以上为 Pass,70 或以上为 Merit,其余为 Fail。B2:B4 中虚构的分数是 62、48 和 50。

第 1 步,先处理两种结果。 在 C2 输入 =IF(B2>=50,"Pass","Fail")。62 显示 Pass,48 显示 Fail,50 显示 Pass,因为 >= 包含 50。

第 2 步,加入 Merit。 先测最严格的条件:

=IF(B2>=70,"Merit",IF(B2>=50,"Pass","Fail"))

对 62:不到 70,但达到 50,所以是 Pass。对 48:Fail。对 50:Pass。75 分会得到 Merit。

第 3 步,组合测试。 如果规则还要求 D 列出席率至少 80,就用 =IF(AND(B2>=50,D2>=80),"Pass","Fail")。62 分、出席率 85 通过。62 分、出席率 70 不通过。

要留意的错误

错误公式: =IF(B2>50,"Pass","Fail")

规则说“50 或以上”,但这个公式说的是“超过 50”。刚好 50 分会得到 Fail。

改成 >= 就对了。另一个常见失误,是把嵌套 IF 里最宽松的测试放在最前面:

=IF(B2>=50,"Pass",IF(B2>=70,"Merit","Fail"))

75 分通过第一个测试,得到 Pass,永远到不了 Merit。

把最严格的测试放在最前面,并且始终测试每个边界上的数值。

自我检测

先自己做,再打开每个答案。

1. 用上面的 Merit 公式,70、69 和 49 分别得到什么?

显示答案

70 是 Merit,因为达到 70。69 是 Pass。49 是 Fail。Merit、Pass、Fail。

2. 某学生分数 45,出席率 85。规则是“分数至少 50 或者出席率至少 80”。=IF(OR(B2>=50,D2>=80),"Pass","Fail") 返回什么?

显示答案

第一个测试不成立,第二个成立。OR 只需要一个,所以返回 Pass。如果改用 AND,则返回 Fail。

3. 为什么嵌套 IF 要先测最高的等级?

显示答案

第一个成立的测试生效。如果把较宽松的“50 或以上”放前面,75 分会停在那里,永远不会被测试是否达到 70。

接下来学什么?

当规则有很多等级时,用表格比写很多层嵌套 IF 更清晰。请看使用查找并写清楚前提假设。如果你的及格分数放在单元格里,请回顾绝对引用这一课。用电子表格引用练习格练习预测。

如果你想让老师检查你自己写的规则的逻辑,请看ICT 线上一对一补习。

常见问题

什么时候用 AND,什么时候用 OR?

所有条件都必须成立时用 AND,例如分数至少 50 并且出席率至少 80。只要一个条件成立就够时用 OR。把规则念出来,听是“并且”还是“或者”,通常就能决定。

什么是嵌套 IF?

嵌套 IF 是把第二个 IF 放进第一个 IF 的“假”分支里,让结果多于两种。每个 IF 测试一个条件,测试顺序要合理,这样第一个符合的测试才会生效。

为什么边界值很重要?

“及格分数 50”这样的规则包含 50 本身。用“大于”而不是“大于或等于”,会让刚好 50 分的结果变成不及格。要有意识地测试边界值。

更新于:

下一步

如果规则的文字你看得懂,但写出来的公式总是对不上,一对一的老师可以帮你一步一步把规则翻译成公式。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生