柏虎资源网

专注编程学习,Python、Java、C++ 教程、案例及资源

函数之王LOOKUP()——多条件匹配查询及替代IF嵌套

LOOKUP()函数的2种形式,理解第一种,会用第二

①公式:=LOOKUP(查找值,查找区域,返回区域),返回区域不写默认为查找区域最后一列

②公式:=LOOKUP(1,0/(查找条件),返回区域),查找条件可以是多条件(AND,OR,NOT)。

使用①公式,首先必须保证查找值,所在列是升序排序(降序也不行),否则查不到准确值;然后也要保证查找列中有查找值,因为即便查找值不存在也会返回一个最接近的近似值。

二分法查找:比较查找值和查找列中间值,查找值小于中间值,在上半区继续二分;查找值大于中间值,在下半区继续二分,可以用一列数,理解二分法查找。

使用②公式,则不必考虑升序排序,通过(1,0/(查找条件),返回区域)变形计算。满足查找条件是1,不满足是0。0/(查找条件)就把查找区域变成一列数:{满足条件的是0,不满足是错误值(0/0没有意义)},二分法也必然返回的是0对应的数据,0最接近1。所以1和0是可以调的的,但是没有必要。

一、公式①简便查询及公式②对比

根据姓名查分数,有指定返回区域,返回查找值对应记录(行)的指定返回列的数据。没有指定返回区域,默认为指定区域为查找区域最后一列。切记查找值,所在的列,必须升序排序。

使用公式②就不用考虑排序了,但必须指定返回区域。

二、多条件匹配查询

根据客户在R(最近一次消费时间)、F(消费频率)及M(消费金)的数据表现划分为8个等级,建立客户分级标准。现在已知每个客户在RFM下的消费数据表现,根据分级卡对客户进行判别分类。

公式:

=LOOKUP(1,0/(($Q$3:$Q$10=L3)*($R$3:$R$10=M3)*($S$3:$S$10=N3)),$T$3:$T$10)

(($Q$3:$Q$10=L3)*($R$3:$R$10=M3)*($S$3:$S$10=N3))相当于同时满足3个条件。

每个客户的RFM数据都要和分级卡中的RFM匹配,完全匹配后返回分级卡中的客群划分。

三、替代IF()函数嵌套

同样是针对学生分数评级,IF需要嵌套:

=IF(B2<60,"E",IF(B2<70,"D",IF(B2<80,"C",IF(B2<90,"B",IF(B2<100,"A","SSS")))))

而LOOKUP就显得非常简洁:

=LOOKUP(B2,{0,60,70,80,90,100;"E","D","C","B","A","SSS"})

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言