问题来源
最近在整理未决案件EXCEL表时遇到一个问题,想实现对表中某列中几个字符实现排序,举个形象的例子:如果想对(保单号)列实现按(机构代码)排序,该如何操作呢?如果是车险,那还好,最多只存在不同年限间错位;但如果是非车险,那就麻烦了,因为他们的险种代码特别多,在排序时会按照险种代码的字母顺序排。
问题分析
大家都知道业务系统中,投保单、保单、批单、立案、计算书等等22位的单号中9-14位代表机构代码,因此要实现按机构代码排序可考虑对9-14位实行排序。
解决方案
有没有办法实现取列中某位字符呢,回答是肯定的。EXCEL计算功能相当强大,大家遇到问题时不妨多看看EXCEL自带的帮助,里面有详细的介绍。最后我选择了MID函数来取列中字符,我尝试在排序时关键字直接输入此函数,但没有成功,有兴趣的可以试试,如果直接能输入函数关键字那就省事了。后来我的办法是新增一列,列值等于MID(),然后在按此列进行排序(如果将来不需要此列内容,排序后删除即可,有点过河拆桥的味道吧)。说到这里大家应该都很清楚了,下面给大家介绍一下可能不太熟悉的MID函数,其实很简单易用,跟大家熟悉的SUM差不多。
下面介绍EXCEL中的MID函数如下:
MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。
MIDB 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。此函数用于双字节字符。
语法
MID(text,start_num,num_chars)
MIDB(text,start_num,num_bytes)
Text 是包含要提取字符的文本字符串。
Start_num 是文本中要提取的第一个字符的位置。文本中第一个字符的 start_num 为 1,以此类推。
Num_chars 指定希望 MID 从文本中返回字符的个数。
Num_bytes 指定希望 MIDB 从文本中返回字符的个数(按字节)。
说明
示例 (MID)
如果您将示例复制到空白工作表中,可能会更易于理解该示例。
|
A |
数据 |
Fluid Flow |
公式 |
说明(结果) |
=MID(A2,1,5) |
上面字符串中的 5 个字符,从第一个字符开始 (Fluid) |
=MID(A2,7,20) |
上面字符串中的 20 个字符,从第七个字符开始 (Flow) |
=MID(A2,20,5) |
因为要提取的第一个字符的位置大于字符串的长度,所以返回空文本 ("") | |
示例 (MIDB)