問題來源
最近在整理未決案件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 從文本中傳回字元的個數(按位元組)。
說明
如果 start_num 大于文本長度,則 MID 傳回空文本 ("")。
如果 start_num 小于文本長度,但 start_num 加上 num_chars 超過了文本的長度,則 MID 隻傳回至多直到文本末尾的字元。
如果 start_num 小于 1,則 MID 傳回錯誤值 #VALUE!。
如果 num_chars 是負數,則 MID 傳回錯誤值 #VALUE!。
如果 num_bytes 是負數,則 MIDB 傳回錯誤值 #VALUE!。
示例 (MID)
如果您将示例複制到空白工作表中,可能會更易于了解該示例。
1
2
A
資料
Fluid Flow
公式
說明(結果)
=MID(A2,1,5)
上面字元串中的 5 個字元,從第一個字元開始 (Fluid)
=MID(A2,7,20)
上面字元串中的 20 個字元,從第七個字元開始 (Flow)
=MID(A2,20,5)
因為要提取的第一個字元的位置大于字元串的長度,是以傳回空文本 ("")
示例 (MIDB)
本文轉自ipist 51CTO部落格,原文連結:http://blog.51cto.com/ipist/11124
,如需轉載請自行聯系原作者