夜已深。
我正在 Excel 上「旁敲侧击」,回眸间,见一须发斑白的老者,瘫坐在表格前,唉声叹气!
我心中疑惑,关切问道,「老先生,何故在此嗟叹?」
「你等表哥表姐如此待我,老夫已然不堪重负,恐不久于人世矣!」老者又是一声长叹。
此时,借着电脑屏幕微弱的光亮,我方才认清,眼前的老者正是 IF 函数本尊!
「IF 先生,万不可再说此等丧气话!您乃是 Excel 中最亲民的函数,简单三个参数就能解决条件判断问题,无论高手还是菜鸟,都能信手拈来,大家都要仰仗您来提质增效呢!」
「仰仗?你所谓仰仗,便是拿本与老夫无干之问题折腾、刁难于我?」IF 突然语调高亢,怒发冲冠。
惊得我忙不迭赔笑道,「这,这从何说起!」
「还想狡辩!你看看,就这种简单逻辑判断,只需逻辑判断符(< , > ,= 等)即可解决,这种问题也要老夫来处理吗?」IF 先生指着表格,大骂不已!
注释:右表使用逻辑运算符判断,结果为 TRUE 或 FALSE,TRUE 表示符合,FALSE 表示不符合。左表使用 IF 函数确实是多此一举。
「这,确实是我辈学艺不精,惊扰了您老人家!实在抱歉!」我已羞愧难当,不敢直视 IF 函数锐利的眼睛。
「学艺不精?借口!MIN 和 MAX 这等基础函数需要学吗?Bang,就是把几个数往里头怼,它们便能演算最大或最小值。放着如此简单的函数不用,你们非得使唤老夫这老胳膊老腿去班门弄斧,贻笑大方!」
IF 先生越说越来气,把桌子拍得梆梆响!
「这 MIN 和 MAX 函数我确实没用过,这不都指着您老一个人打天下呢嘛!您可是最受欢迎的函数,很多工作还是不好推脱的,您说是不?」我谄媚地笑道。
「欲戴王冠必承其重,这道理老夫明白!但是每每回到 Excel 函数库,见到此二贼,同 LARGE、SMALL,四人悠哉游哉地打着麻将,还嘲弄老夫狗拿耗子,实在令人不齿!」
IF 先生朝着桌子砸了一拳头,哎地一声长叹!
「等等,LARGE 和 SMALL 与你等之恩怨无涉,老先生切莫伤及无辜啊!」
「无辜!他们四人实乃一丘之貉!LARGE 和 SMALL 是返回第 K 大或第 K 小的函数。作为 MAX 和 MIN 函数的加强版,他们本应躬身垂范,谁曾想竟然也尸位素餐,总让我当了替罪羊,吃力不讨好!真是气煞我也!」
E2 单元格—— IF 公式(左):
=IF(B2gtC2,IF(B2gtD2,IF(C2gtD2,C2,D2),B2),IF(B2gtD2,B2,IF(C2gtD2,D2,C2)))
E2 单元格—— LARGE 公式(右):
=LARGE(B2:D2,2)
眼见 IF 仍是愤愤不平,我忙转移话题,「IF 先生,可 Excel 有些问题还非您不可!比如这区间判断,您自认第二,哪个敢称第一!」
C2 公式如下:
=IF(B2>=$E$6,$G$6,IF(B2>=$E$5,$G$5,IF(B2>=$E$4,$G$4,$G$3)))
「打住,你还真别给我戴这个高帽!这问题上,比起 VLOOKUP,老夫自愧不如啊!」
「什么?VLOOKUP 还能这样用,真是大开眼界了!但您也谦虚过甚了,有时为了容错,VLOOKUP 也需要您鼎力相助才行,不是吗?」
IF 函数容错公式:
=IF(VLOOKUP(A2,$E$2:$F$6,2,0)=0,1,B2/VLOOKUP(A2,$E$2:$F$6,2,0))
「这你又错了!此公式中,VLOOKUP 因我而需重复做工,他也是颇有微词!甚至当面质问老夫,为何不退位让贤于 IFERROR 函数,骂我是学阀,是独夫,真真是令老夫食不甘味、郁气难解啊!」
IFERROR 函数容错公式:
=IFERROR(B2/VLOOKUP(A2,$E$2:$F$6,2,0),1)
「学阀虽不堪入耳,但也须是您这样的实力函数,才当得!比如这类不同等级采用不同算法的复杂条件判断问题,就非您莫属了!」
我迅速在表格中找到了维护我心中 IF 函数神圣地位的证据,挺着腰板向 IF 先生展示。
D2 单元格—— IF 公式:
=IF(C2<60%,2000,IF(C2<100%,B2*1%-500,IF(C2<150%,B2*3%,B2*5%+2000)))
「哎,风烛残年之躯,怎敢有舍我其谁之念!判断之能,CHOOSE 函数远在老夫之上。」
D2 单元格—— CHOOSE 公式:
=CHOOSE(MATCH(C2,$F$3:$F$6,1),2000,B2*1%-500,B2*3%,B2*5%+2000)
公式说明:CHOOSE 函数可以根据首个参数指明的索引序号,返回待选列表中对应的数值。它的基本语句时 CHOOSE (索引号,待选值 1,待选值 2,......)。
此处,待选列表是 4 个区间对应的不同计算方法,即 CHOOSE 的第 2 到第 5 个参数。
MATCH 模糊匹配完成率对应所属的是第 1 个区间,于是 CHOOSE 返回参数列表的第 1 个数值,即 2000。
看来,我以往确实过份苛求于 IF 函数了!我陷入深深懊恼之中。
Excel 函数之众不可胜数,其能不可斗量,为何我却止步于 IF 函数,成井中之蛙,殊不知:
❶ 条件判断只需逻辑判断符(<,>,= 等);
❷ 数值大小可用 MIN / MAX / LARGE / SMALL;
❸ 区间判断 VLOOKUP 解法更优;
❹ IFERROR 乃容错之王;
❺ CHOOSE 的复杂逻辑判断能力神乎其神。
一番自省后,我从深思中抽身而回,老者已不见了踪迹。
看着表格里满是那两个熟悉的字符—— IF,我抬起指尖,重重地敲下删除键。
IF,你该被温柔对待!