天天看點

EXCEL表按列中個别字元排序

問題來源

    最近在整理未決案件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

,如需轉載請自行聯系原作者

繼續閱讀