必知的技术知识:Excel公式SWITCH函数你用过吗?多种查找函数介绍

简介: 必知的技术知识:Excel公式SWITCH函数你用过吗?多种查找函数介绍

div【title=hid】{ display: none;}


我们公司的项目上的模板使用了Excel的Switch函数,今天我使用的时候,发现报错,无法使用。


环境说明


我使用的是Windows 10 专业版,Office 2016


报错信息


在Excel中的报错如下:


单元格的公式如下:


=F8_xlfn.SWITCH(H8,"高",1.5,"中",1,"低",0.5)(100-I8)/100


查找问题


从网上找了一下相关的问题,说是使用了不支持的函数。


也在网上找了一些关于switch函数的说明文章。


=========================================================================================


Excel 函数公式/SWITCH函数你用过吗?/查找函数群英会


本文于2023年8月4日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!


内容提要


SWITCH函数


日期数据的整理


SWITCH函数替代方案


大家好,我是冷水泡茶,今天在知乎有一邀请贴:


说实话,关于SWITCH函数,我好象是从来没有用过,一点印象都没有。于是赶紧搜了一下,微软官网上的说明:


这个函数有点像IF,也有点像VLOOKUP,但是更简洁,不过参数有限制,最多126个。


我们先撇开这个函数不谈,看到问主的这个案例,我首先想到的是做一个对照表:


接着再用VLOOKUP函数查找对应的值:


回到问主的问题,函数报错,于是我把他的公式复制到我的工作表里,没有出现问题,能正常使用的,不知为何他那边报错:


回答就是这样了,我们再发散一下,谈谈在回答这个问题时,我们用到或想到的相关EXCEL技巧吧:


对照表整理


在准备回答问题的时候,我想把问主的公式整理成对照表的形式,怎么做才够快捷呢?我是这样做的:


1、把公式中1,“1”......31,“w"这段参数复制到一个单元格里。


2、分列,分隔符号,其他“,”。


3、把分列得到的数据转置。


4、在数据右侧单元格,通过MOD(ROW(),2)公式,把匹配值与返回值分别标上0或1.


5、筛选0和1则分别得到匹配值与返回值,把他们对应贴到对照表里。


6、完工!


日期的处理


1、我猜问主这么做,可能他要把所有的日期都变成长度为1的值,但我实在想不出来是什么原因。


2、如要提取出来日期中的月、日,我们可以用MONTH、DAY函数, 不过如果直接用MONT(日期)&“月”或DAY(日期)“日”的话,在字段排序的时候可能会出现问题,如按日1排序:


3、我们可以通过TEXT函数来把1位数日前添0,都变成两位数,这样排序就没有问题了。按日2排序。


或者,=TEXT(A2,"DD")&"日",则更为简洁。


SWITCH函数替代


问主直冲冷门函数而去,我们来看看有没有其他替代方案:


1、对照表方法,最常见,最实用,但要多加一个表。


(1)VLOOKUP法,最简单直接,我们前面说过了,不再重复;


(2)OFFSET+MATCH法:


=OFFSET(对照表!$A$1,MATCH(数据表!A2,对照表!$A$2:$A$32,0),1)


(3)INDEX+MATCH法:


=INDEX(对照表!$B$2:$B$32,MATCH(数据表!A2,对照表!$A$2:$A$32,0))


(4)LOOKUP法:


=LOOKUP(A2,对照表!$A$2:$B$32)


2、VLOOKUP+数组法,我们直接把公式改为:


=VLOOKUP(A2,{1,"1";2,"2";3,"3";4,"4";5,"5";6,"6";7,"7";8,"8";9,"9";10,"X";11,"Y";12,"Z";13,"A";14,"B";15,"E";16,"F";17,"G";18,"H";19,"J";20,"K";21,"L";22,"M";23,"N";24,"P";25,"Q";26,"R";27,"S";28,"T";29,"U";30,"V";31,"W"},2,0)


复杂程度跟SWITCH差不多,公式很长。


3、LOOKUP+数组法:


=LOOKUP(A2,{1,"1";2,"2";3,"3";4,"4";5,"5";6,"6";7,"7";8,"8";9,"9";10,"X";11,"Y";12,"Z";13,"A";14,"B";15,"E";16,"F";17,"G";18,"H";19,"J";20,"K";21,"L";22,"M";23,"N";24,"P";25,"Q";26,"R";27,"S";28,"T";29,"U";30,"V";31,"W"})


比VLOOKUP稍微简洁那么一丢丢,公式依然很长。


4、IF法,在转换参数比较少的情况下,可以用IF,但在本例中行不通。稍微列个例子意思一下:


=IF(A2=1,"1",IF(A2=2,"2",IF(A2=3,"3","")))


5、有没有其他方法?我想肯定有,我们就不再深究了。


总结


1、数据查询、对照,或者说是转换,我们首选还是VLOOKUP+对照表,简单、直观。


2、在匹配值与返回值数量较少的情况下,我们可以用SWITCH,比如把性别男转换成1,女转换成0,我们可以用(假设性别字段在K2列):


=SWITCH(K2,"男",1,"女",0)


当然我们也可以用IF,对于二选一的情况,更简洁:


=IF(K2="男",1,0)


3、就此打住。


喜欢就点个赞、点在看、留个言呗!分享一下更给力!感谢!


出处:


=========================================================================================


Excel逻辑函数switch的入门使用


SWITCH函数


switch是逻辑函数中我们要介绍的最后一个函数,它的作用是给一个表达式的结果,设置指定值,并返回这些值所对应的结果,如果表达式的结果不等于设置的指定值中任意一个,那么返回另外一个结果。


看起来有点像ifs和choose的表达,但ifs的参数是条件和值,choose的参数是序号和值。


虽然几个函数都可以在一些场景中应用到,但语法不同,表达式的写法不一样,在处理一些具体问题时,还是可见优劣的。


那下面还是通过几个示例场景//代码效果参考:http://www.jhylw.com.cn/260933883.html

,来介绍switch函数的含义和作用。

示例1


如下图所示,要根据序号的值,来匹配对应的季度。若无匹配,则返回错误值。


我们可以输入公式:=SWITCH(A15,1,"第1季度",2,"第2季度",3,"第3季度",4,"第4季度","错误")


接下来我们看看ifs函数和choose函数匹配对应季度的公式:


从图中可见,switch函数的公式是最短的,而且表达更简洁整齐,下面再通过示例2来详细介绍它的语法与应用。


示例2


如下图中,我们根据产品描述来说明它的类别和尺寸,如E代表耳环,R代表戒指等,F代表均码,M代表中码等等……


该怎么写这个公式呢?


我们先看看switch的语法:


它的参数可以设置很多个,但第1参数是表达式,它可以是一个单元格地址,如A2,也可以是一个函数公式表达式;第2参数是指定的值1,如"E",第3参数是结果1,如“耳环”;第3参数是值2,第4参数是结果2,……如此循环,可设置所需的多个值和结果。


那么按照这个表达,我们输入公式:=SWITCH(MID(A3,1,1),"E","耳环","R","戒指","N","项链","B","手链")


这里嵌套了一个mid函数,它的作用是提取指定字符,在这里是要提取第1个字符,随后设置指定值,和对应的结果。


而返回产品的尺寸,可以输入公式:=SWITCH(MID(A3,LEN(A3),1),"F","均码","S","小码","L","大码","M","中码","XL","加大码","XXL","超大码")


表达式的结构都是相同的,只要记住函数的各个参数用法,便可以灵活使用。


在这个公式中出现了mid和len函数,它们都属于文本函数,文本函数是excel中处理文本数据的主要工具,它可以提取指定字符,替换字符,连接多个单元格内容,更改数据格式等等,我们在下一节课会来认识excel表格常用的文本函数,快速掌握它们的含义和用法。


那么到此,关于常见逻辑函数的快速入门介绍,就告一段落,关于上一期的逻辑函数讲解,可以参照《常见逻辑函数快速入门》。


当然,随着该专栏的继续深入,大家对excel函数快速使用有一定了解后,也会逐步使用逻辑函数与其他文本、查找引用函数及数学函数等进行组合应用,也可以嵌入到数组函数中,处理一些相较复杂的函数问题。


出处:


您的资助是我最大的动力!


金额随意,欢迎来赏!


付款后有任何问题请给我留言。


如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。


如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【关注我】。(●'?'●)


因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!


如果对你有所帮助,赞助一杯咖啡!打


付款后有任何问题请给我留言!!!


【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!

相关文章
|
4天前
|
数据库 C语言 索引
必知的技术知识:excel函数
必知的技术知识:excel函数
|
11天前
|
数据安全/隐私保护
杨老师课堂之Excel VBA 程序开发第八讲使用工作表函数
杨老师课堂之Excel VBA 程序开发第八讲使用工作表函数
14 1
|
3天前
必知的技术知识:Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
必知的技术知识:Excel通过身份证获取出生年月,性别,年龄,生肖,星座,省份等信息总结归纳
|
4天前
|
easyexcel Java API
Apache POI与easyExcel:Excel文件导入导出的技术深度分析
Apache POI与easyExcel:Excel文件导入导出的技术深度分析
|
2月前
|
存储 数据挖掘 BI
Excel 里 COUNT 函数介绍
Excel 里 COUNT 函数介绍
|
2月前
|
数据采集 数据挖掘 关系型数据库
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
|
2月前
|
Java Apache 索引
POI操作大全(动态合并单元格,为单元格生成一个自定义的数据显示格式,自定义公式计算结果生成,读取excel,word文件在生成图片,word指定位置生成图片)
POI操作大全(动态合并单元格,为单元格生成一个自定义的数据显示格式,自定义公式计算结果生成,读取excel,word文件在生成图片,word指定位置生成图片)
136 0
|
2月前
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
2月前
|
Java
java导出复杂excel
java导出复杂excel
|
12天前
|
easyexcel Java API
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
37 1