编按:哈喽,大家好!在前面的文章中,给大家分享了9种常规的区间查询的方法,不知道大家还有印象吗?今天我们又来说区间查询,不过这次我们要分享的可不是常规的方法,是7种另类的区间查询的方法,保证小伙伴们是闻所未闻见所未见,如同打开新世界大门一般!赶紧来看看吧! 【前言】 我们之前说过"等级评定、区间取值"的话题,记得当时给出了三大类,共九种函数的操作方法:《老是加班还没加班费?谁让你不会excel区间查询的三大套路!》,今天我们接着聊区间查询。只不过作者E图表述希望通过本篇阅读,可以让同学们学到一些少数人才会的"另类"操作。 【正文】 既然之前和大家说过关于区间取值的方法,那么今天就给大家换换"口味",不再引用数字或者文本,本次案例我们来引用"非字体字符",是什么呢?见下图: "满天都是小星星",这样评定等级的方式应该不陌生吧,很多的企业都会这样要求,它区别于"ABCD"式或者百分数形式的评级,优点就在于可以很直观的看出"孰强孰弱"。当然同学们也可以使用"微图表"操作,效果是一样的,只是我们通过本例,可以了解并练习一些函数。话不多言,直接开始。 方法一 G2单元格输入函数: =LOOKUP(B3,{0,60,70,80,90,100},$F$3:$F$8) 下拉填充柄将函数填充至下方单元格,完成。 这是LOOKUP函数的标准用法,通过常量数组{0,60,70,80,90,100}和单元格区域F3:F8的匹配,达到区间取值的效果。只不过,我们这里引出的是"图形字符"。 方法二 是不是觉得方法一比较常规了,那再看看方法二: G2单元格输入函数: =INDEX($F$3:$F$8,MATCH(B3,{0,60,70,80,90,100})) 下拉填充柄将函数填充至下方单元格,完成。 INDEX+MATCH函数的经典用法,通过MATCH(B3,{0,60,70,80,90,100})确定"得分"在常量数组中的序号,作为INDEX被索引的序号,索引出单元格区域F3:F8中对应的图形字符。 方法三 上面的两个方法,是不是要被有的同学 "吐槽",没有什么新意啊?其实基础的内容还是有必要掌握的,不积硅步无以至千里,下面就应同学们的要求,请看"方法三": G2单元格输入函数: =TEXT(TEXT(TEXT(B3,"[>=100]★★★★★;[>=90]★★★★☆;0"),"[>=80]★★★☆☆;[>=70]★★☆☆☆;0"),"[>=60]★☆☆☆☆;☆☆☆☆☆") 下拉填充柄将函数填充至下方单元格,完成。 这个函数的用法就不多见了吧。TEXT函数对于"单元格值的格式"来说是一个万能函数,我们选中某个单元格,按CTRL+1快捷键,弹出"设置单元格格式"窗口。 这里涉及的所有分类中,只有一种效果是TEXT函数实现不了的,其他的都可以用TEXT函数实现。关于TEXT函数的话题比较大,在之前的文章《Excel教程:最魔性的TEXT函数,看一眼就心动~》中,我们也介绍过,这里就不展开了,下次再给它开一个专题来讨论。 "方法三"是典型的用TEXT函数代替IF函数的用法(在之前的文章《如果函数有职业,TEXT绝对是变装女皇!》中有介绍过),TEXT函数代替条件函数用法的语法: TEXT(数值,"[条件1]显示格式;[条件2]显示格式;否则显示格式;文本显示格式"),我们可以看到TEXT函数的第二参数有四个部分组成,其中第四个格式是"文本格式",因为我们本案例使用的是对数字的判断,所以这个格式可以省略,变成下面的语法: TEXT(数值,"[条件1]显示格式;[条件2]显示格式;否则显示格式"),大家通过语法可以看出,前两个是判断条件的,当满足时返回需要的"小星星格式",如果不满足的时候,我们规定了一个"0"的格式。在TEXT函数中这个"0"不是数字,而是一个"占位符",返回的依然是数值本身。看到这里,我们需要记住一个规则:TEXT函数作为判断条件使用的时候,最多只能判断两个条件。当有第三个、第四个条件时,我们需要再使用一个TEXT函数来判断,还有更多的条件,以此类推。 再回到我们"方法三"给出的函数,一共6个条件,所以我们使用了3个TEXT函数嵌套判断,完成了效果。 方法四 跳过刚刚"烧脑"的方法三,让我们来看看轻松一些的方法四。 G2单元格输入函数: =MID("★★★★★☆☆☆☆☆",7-MATCH(B3,{0,60,70,80,90,100}),5) 下拉填充柄将函数填充至下方单元格,完成。 函数解析:我们列出★★★★★☆☆☆☆☆这样的一个图形字符串,通过MID函数"断位取值"的思路,得到我们的需求。 方法五 在方法四中,我们利用了数学的思路,得到了结果。在方法五中同样也适用,我们利用OFFSET函数来解决这个需求。 G2单元格输入函数: =OFFSET($F$2,MAX(1,INT((B3-60)/10+2)),,,) 下拉填充柄将函数填充至下方单元格,完成。 INT((B3-60)/10+2)的作用,就是为了确定OFFSET函数的第二参数向下移动的行数,列表如下: 这样OFFSET就可以根据分数,确定从基础单元格F2开始,下移的行数,第三参数为空,默认为0;第四、五参数为空,默认为1,这样就形成了我们上面的函数,得到需求的效果。 方法六 G2单元格输入函数: =INDEX(★☆,MAX(1,INT((B3-60)/10+2))) 下拉填充柄将函数填充至下方单元格,完成。 "方法六"的做法,和"方法五"类似,写出这个案例,主要是为了让同学们能够学会一个"看"函数的习惯。在这个函数中,有一个★☆图形字符串,可是这个字符串既不是"数字",也没有加英文状态的双引号,作者E图表述教给大家一个经验:在公式函数中,如果看到一个没有加英文状态双引号的"字符串"时,十有八九这是一个"自定义名称"。我们本方法就是用了这个技巧。 按CTRL+F3,弹出"名称管理器"窗口,点击"新建"按键,按下图设置名称即可,再用MAX+INT的方式确定索引号(同方法五),再用INDEX索引出对应值即可。 方法七 G2单元格输入函数: =REPT("★",MAX(0,(B3-60)/10+1))&REPT("☆",5-INT(MAX(0,(B3-60)/10+1))) 下拉填充柄将函数填充至下方单元格,完成。 这个就是今天重点想给大家介绍的一个函数——REPT函数,这个函数只有两个参数,其功能是根据指定次数重复文本录入。 语法:REPT(TEXT值,重复的次数) 这里需要注意一点:重复的次数,可以通过计算得到,如果得到的是小数,REPT函数默认只取整数部分,即ROUNDDOWN函数的效果,例如: 根据这个特性,我们上面公式中计算重复次数的方式,才有意义。这里面的"数学思维"你能看懂吗? 【编后语】 EXCEL是统计、是数据分析、是"算数"的软件,每一个EXCELER的操作都应该和数学有关,即便我们处理文本字符串,这其中有的时候同样离不开"数学的思维"。这个思路希望可以给各位同学,在工作上带来一些新的创意,可以让工作更轻松,更有"乐趣"。 ****部落窝教育-excel区间取值方法**** 原创:E图表述/部落窝教育(未经同意,请勿转载)