如有高阶函数,对 Excel 文本数字排序就会变得非常简单 |
您所在的位置:网站首页 › excel文字数字排序 › 如有高阶函数,对 Excel 文本数字排序就会变得非常简单 |
之前给大家详细讲解了如何通过公式对文本数字排序,其实类似的公式有很多。今天要教几个用到 O365 函数的公式,不得不说,高阶函数确实能简化人类的工作。 案例: 将下图 1 中的部门按升序排序,效果如下图 2 所示。 解决方案 1: 1. 在 B2 单元格中输入以下公式: =SORTBY(A2:A10,FIND(MID(A2:A10,3,1),"一二三")) 公式释义: MID(A2:A10,3,1):将 A2:A10 区域中每个单元格的第 3 位提取出来,会生成一组由文本数字组成的数组; FIND(...,"一二三"):依次查找上述数组是否含有文本“一二三”中的任意字符,如果有,则返回该字符在文本字符串中的位置,是一个数值; SORTBY 函数的语法如下: SORTBY(要排序的区域,用于设置排序规则的区域,[升序还是降序]); 可选参数为 1 或默认值时,表示升序;-1 表示降序; 本公式的意思是,对 find 查找出的这组数值按升序排序,然后以这个规则将部门重新排序;简单来说就是将中文数字提取出来,通过 find 函数转换成了对应的数值,然后再对数值升序排序 解决方案 2: 1. 在 B2 单元格中输入以下公式 --> 下拉复制公式: =IFS(COUNT(FIND("一",A2)),1,COUNT(FIND("二",A2)),2,TRUE,3) 公式释义: ifs 的作用本质上跟 if 是一样的,只是把语法简化了,不再需要层层嵌套; COUNT(FIND("一",A2)),1:在 A2 单元格中查找“一”,找到返回所在的位置数,找不到返回错误值;用 count 函数计算结果是否为数值,即是否找到,找到的话,返回数值 1; COUNT(FIND("二",A2)),2:公式同理,找到“二”就返回数值 2; TRUE,3:如果都找不到,则返回 3 2. 选中 B 列的任意单元格 --> 选择菜单栏的“数据”-->“升序” A 列就按部门顺序排序好了。 解决方案 3: 1. 也可以将 B 列的公式修改如下: =SWITCH(MID(A2,3,1),"一",1,"二",2,"三",3) 公式释义: switch 函数相当于将 ifs 函数再次简化了,语法为 SWITCH(要转换的值, 要匹配的值 1, 如存在匹配项 1 需返回的值, [要匹配的值 2], [如存在匹配项 2 需返回的值]...) MID(A2,3,1):用 mid 函数提取出 A 列的文本数字; 一",1,"二",2,"三",3:当文本为“一”、“二”、“三”时,分别返回数值 1、2、3 2. 对 B 列进行升序排序,A 列也同步排序好了。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |