該教程解釋了在Excel中訂購字母數(shù)字字符串的常見問題,並提供了將數(shù)字和文本作為數(shù)字的數(shù)字排序的工作解決方案。
在Excel中分別對(duì)文本和數(shù)字進(jìn)行排序與??ABC或123一樣容易:),但是重新將產(chǎn)品ID,SKU和其他具有字母和數(shù)字的值重新排序可能會(huì)導(dǎo)致問題。 Excel的字母順序無法區(qū)分字符串的數(shù)字部分以分別處理它。如果您想更多地控製字母數(shù)字刺的方式,請(qǐng)查看以下示例。
將數(shù)字排序?yàn)閑xcel中的文本
在Excel中從最小到最大的數(shù)字排序時(shí),而不是這樣做:
1、2、3、11、12、13、110、120、130
有時(shí)您可能會(huì)得到這樣的東西:
1、11、110、12、120、13、130、2、3
當(dāng)數(shù)字實(shí)際上是文本並且它們以文本為單位時(shí),就會(huì)發(fā)生這種情況 - 就像根據(jù)字母安排的單詞,“文本數(shù)”是根據(jù)數(shù)字而不是其值對(duì)其進(jìn)行排序的。
如果目標(biāo)列包含格式為文本的數(shù)字,則數(shù)字正常排序所需的只是將文本轉(zhuǎn)換為數(shù)字。結(jié)果是在下面的屏幕截圖中列為C列。
相反,如果您想將數(shù)字排序?yàn)槲谋?/b>,請(qǐng)先將數(shù)字轉(zhuǎn)換為文本,然後單擊“主”選項(xiàng)卡>編輯組> “ sort&filter”>“&filter” > “分類a -z” 。
結(jié)果將就像在上一個(gè)屏幕截圖中的A列中一樣。
如何在Excel中對(duì)混合數(shù)字和文字進(jìn)行排序
借助內(nèi)置的Excel排序功能,字母數(shù)字字符串(組合文本和數(shù)字)始終被分類為文本,即按字母數(shù)字,數(shù)字?jǐn)?shù)字。要對(duì)包含字母前綴或後綴數(shù)字的數(shù)字列進(jìn)行排序,請(qǐng)執(zhí)行以下步驟。這就是我們?cè)噲D實(shí)現(xiàn)的結(jié)果。
為了防止Excel將字母字符串中的數(shù)字作為文本處理,我們將在輔助列中提取這些數(shù)字,然後按該列進(jìn)行排序。這將使您保持原始數(shù)據(jù)不變,但會(huì)按照自己喜歡的方式重新排列。
- 在原始值旁邊的列中,輸入一個(gè)從字符串中提取數(shù)字的公式。
在此示例中,我們可以簡(jiǎn)單地在連字符之後提取所有字符(“ - ”)。在Excel 365中,可以使用TextAfter函數(shù)完成此操作。與任何其他文本功能一樣,它的輸出始終是文本,無論您是檢索字母還是數(shù)字,因此我們將結(jié)果乘以1將文本字符串轉(zhuǎn)換為數(shù)字。
=TEXTAFTER(A2, "-")*1
在較舊的Excel版本中,可以使用三種不同函數(shù)的組合來實(shí)現(xiàn)相同的結(jié)果,這些函數(shù)在特定字符之後提取文本。此外,執(zhí)行 *1操作以將文本輸出轉(zhuǎn)換為數(shù)字:
=RIGHT(A2, LEN(A2) - SEARCH("-", A2)) *1
提示。要快速從單元格中的任何位置提取數(shù)字,您可以使用我們的Excel終極套件中包含的提取工具。
- 按提取的數(shù)字對(duì)原始數(shù)據(jù)進(jìn)行排序。選擇的數(shù)字,轉(zhuǎn)到“主頁”選項(xiàng)卡> sort&filter > “排序最小到最大” 。在彈出的對(duì)話框中,選擇“展開選擇”選項(xiàng),然後單擊“排序” 。有關(guān)更多詳細(xì)信息,請(qǐng)查看如何對(duì)行進(jìn)行排序和保持行在一起。
現(xiàn)在,包含字母和數(shù)字的字符串被分類為數(shù)字,您可以在必要時(shí)刪除或隱藏助手列。
一次按文本和數(shù)字對(duì)字符串進(jìn)行排序
如果您的源字符串具有幾個(gè)不同的元素,則可以在單獨(dú)的列中提取每個(gè)元素,然後按多個(gè)列進(jìn)行排序。結(jié)果,字符串將像下面的屏幕截圖中的D一樣排列:
由於我們數(shù)據(jù)集中的所有字符串都具有相同的模式,因此將文本和數(shù)字分為不同列的最簡(jiǎn)單方法是使用正則表達(dá)式。這可以在名為RegexPextract的自定義功能的幫助下完成。首先,如本教程所述,您將其代碼添加到Excel中。之後,使用以下公式。
要從單元A2提取文本的第一次出現(xiàn),B2中的公式為:
=RegExpExtract(A2, "[^\d] ", 1)
要提取第一個(gè)數(shù)字,C2中的公式為:
=RegExpExtract(A2, "\d ", 1)*1
要提取第二個(gè)數(shù)字,D2中的公式為:
=RegExpExtract(A2, "\d ", 2)*1
在2 nd和3 rd公式中,我們將RegexPexTract輸出乘以1,以將提取的子字符串變成一個(gè)數(shù)字。
我們最終套件的用戶可以利用Regex工具來達(dá)到相同的結(jié)果。他們只需要執(zhí)行一個(gè)更快速的操作即可將提取的數(shù)字字符串(C列C和D)轉(zhuǎn)換為數(shù)字:
一旦文本和數(shù)字被拆分,請(qǐng)通過多列對(duì)數(shù)據(jù)集進(jìn)行排序:
- 選擇所有列(在我們的情況下為A2:D16)。
- 在“數(shù)據(jù)”選項(xiàng)卡上,在“排序和過濾器組”中,單擊“排序”按鈕。
- 根據(jù)需要添加盡可能多的排序級(jí)別,然後選擇所需的排序順序。
- 完成後,單擊確定。
在我們的情況下,選定的範(fàn)圍首先按A到Z進(jìn)行文本排序,然後按數(shù)字為1 ,然後從最小到最大的數(shù)字排名第2 。
結(jié)果正是我們要尋找的:
提示。要以不同的方式重新安排字符串,請(qǐng)?jiān)?i>排序對(duì)話框中更改級(jí)別的順序。
如何在Excel中對(duì)多級(jí) /層次結(jié)構(gòu)進(jìn)行排序
在Microsoft Excel中,多級(jí)數(shù)字,例如1.1、1.1.1、1.1.2是字符串,它們排序?yàn)槲谋?,而不是?shù)字:
要將多級(jí)字符串排序?yàn)閿?shù)字,您可以使用具有以下語法的自定義用戶定義函數(shù):
層次數(shù)(range,del,max_level)在哪裡:
- 範(fàn)圍是要排序的範(fàn)圍。
- DEL是用於分離級(jí)別的定界符,通常是一個(gè)點(diǎn)(。)。
- max_level是層次結(jié)構(gòu)中的最大級(jí)別數(shù)量。
這是函數(shù)的代碼:
該函數(shù)的作用是生成允許對(duì)多級(jí)數(shù)字字符串進(jìn)行排序的數(shù)字。更確切地說,它將層次結(jié)構(gòu)字符串分為單個(gè)數(shù)字(部分),根據(jù)以下算法處理每個(gè)部分,並將結(jié)果加起來:
part(Index) * (10 ^ ((level - Index) * 2))
例如,對(duì)於1.1,該功能會(huì)產(chǎn)生此結(jié)果:
1*(10^((2-0)*2))1*(10^((2-1)*2))= 10100
對(duì)於1.2,是:
1*(10^((2-0)*2))2*(10^((2-1)*2))= 10200
如何使用自定義功能對(duì)層次結(jié)構(gòu)編號(hào)進(jìn)行排序:
- 將層次函數(shù)的代碼插入工作簿的標(biāo)準(zhǔn)代碼模塊中,並將其保存為宏觀啟用的工作簿(.XLSM)。詳細(xì)說明在這裡。
- 在第一個(gè)層次字符串旁邊的空白單元格中,輸入層次結(jié)構(gòu)公式,然後按Enter鍵。
- 根據(jù)需要將公式拖到盡可能多的行上。
- 根據(jù)公式列對(duì)數(shù)據(jù)集進(jìn)行排序。
假設(shè)您的多級(jí)數(shù)字字符串在A列A中最多3級(jí)。B2的公式為:
=HierarchyNumber(A2, ".", 3)
複製公式後,您將獲得此結(jié)果:
之後,您可以按公式列從最小到最大的公式列對(duì)整個(gè)數(shù)據(jù)集(A2:B19)進(jìn)行排序:
並將多級(jí)數(shù)字字符串排序?yàn)閿?shù)字:
對(duì)帶有文本前綴的多級(jí)數(shù)字進(jìn)行排序
此示例討論了一個(gè)略有不同的情況,其中多級(jí)數(shù)字帶有一些文本,例如“級(jí)別1.1.1”。乍一看,任務(wù)聽起來更複雜,但實(shí)際上解決方案更簡(jiǎn)單:)
首先,將多級(jí)數(shù)字子字符串提取到單獨(dú)的列中。為此,您可以使用我們的Ultimate Suite包含的提取工具:
或者,您可以編寫一個(gè)公式以在空間之後拉動(dòng)所有字符:
=RIGHT(A2, LEN(A2) - SEARCH(" ", A2))
然後,進(jìn)行自定義排序。在Excel排序?qū)υ捒蛑校砑觾蓚€(gè)級(jí)別 - 首先由提取的層次結(jié)構(gòu)編號(hào),然後由原始字符串 - 然後單擊“確定:
以下警告將彈出,您選擇“將存儲(chǔ)為單獨(dú)存儲(chǔ)為文本的數(shù)字和數(shù)字”。
結(jié)果,包含多級(jí)數(shù)字的字符串按數(shù)字排序:
這就是如何對(duì)Excel中的數(shù)字字符串和多級(jí)數(shù)字進(jìn)行排序。感謝您閱讀並在下週在我們的博客上與您見面!
可用下載
在Excel中對(duì)混合數(shù)字和文本進(jìn)行排序 - 示例(.xlsm File)Ultimate Suite完全功能的試用版(.EXE文件)
以上是如何對(duì)Excel中的混合數(shù)字和文本,多級(jí)數(shù)字進(jìn)行排序的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)