怎么将excel里字母数字混合的数据进行排序?

标签:
十字单元格数字字母数字数据 |
分类: EXCEL学习 |
http://s6/mw690/001up1yagy6MCz68pgh95&690
问:每一列仅根据数字大小排列,数字一样的情况下再根据字母大小排列
答:我需要建立一张辅助表sheet2
1.
http://s9/mw690/001up1yagy6MCz9Wc6Qb8&690
在sheet2表中A1单元格输入:=--(RIGHT(OFFSET(Sheet1!A1,0,ROUND((COLUMN()/2),0)-COLUMN()),SUM(LEN(OFFSET(Sheet1!A1,0,ROUND((COLUMN()/2),0)-COLUMN()))-LEN(SUBSTITUTE(OFFSET(Sheet1!A1,0,ROUND((COLUMN()/2),0)-COLUMN()),{0,1,2,3,4,5,6,7,8,9},"")))))
然后黑十字往下拉。
2.
http://s15/mw690/001up1yagy6MCzc99oi9e&690
在sheet2表中B1单元格输入:=LEFT(OFFSET(Sheet1!A1,0,1-COLUMN()/2),LEN(OFFSET(Sheet1!A1,0,1-COLUMN()/2))-SUM(LEN(OFFSET(Sheet1!A1,0,1-COLUMN()/2))-LEN(SUBSTITUTE(OFFSET(Sheet1!A1,0,1-COLUMN()/2),{0,1,2,3,4,5,6,7,8,9},""))))
然后黑十字往下拉。
看下图:
http://s8/mw690/001up1yagy6MCzdYTGL47&690
然后选中A1至B6,如图:
http://s9/mw690/001up1yagy6MCzeUbOMb8&690
黑十字往右拉,形成如图:
http://s6/mw690/001up1yagy6MCzlVY6915&690
注意黑十字往右拉之前,一定要选中A1:B6 哦!
3.返回到sheet1表,在sheet1表中的A9输入:=VLOOKUP(SMALL(OFFSET(Sheet2!A$1,0,COLUMN()-1,6,1),ROW(A1)),OFFSET(Sheet2!A$1,0,COLUMN()-1,6,2),2,0)&SMALL(OFFSET(Sheet2!A$1,0,COLUMN()-1,6,1),ROW(A1))
http://s16/mw690/001up1yagy6MCzozF3F0f&690
黑十字往下拉,如图:
http://s1/mw690/001up1yagy6MCzprrsQ40&690
再在这6个单元格选中的情况下,直接黑十字往右拉如图:
http://s15/mw690/001up1yagy6MCzr1r0W6e&690
看到了吗?已经按数字大小,从小到大排列了。但是有一个问题,大家发现没,数字相同的,比如B列中,R46、I46,下面只显示R46、R46。这是由于我用了VLOOKUP缘故,暂时这道题,我只能想到这里,后续我再来想下如何解决数字相同,按前面英文大小排列。如果数字重复的数据不是很多的话,大家可以先用找出重复项来手工修改下。我后面也会再想办法解决英文大小排列的问题。
---------------------------------------------------
来了,我想到解决办法了,数字相同,按前面英文大小排列
1.仍旧用sheet2表来做下辅助表,在sheet2表A1单元格输入公式:
=--(RIGHT(Sheet1!A1,SUM(LEN(Sheet1!A1)-LEN(SUBSTITUTE(Sheet1!A1,{0,1,2,3,4,5,6,7,8,9},""))))&CODE(LEFT(Sheet1!A1,LEN(Sheet1!A1)-SUM(LEN(Sheet1!A1)-LEN(SUBSTITUTE(Sheet1!A1,{0,1,2,3,4,5,6,7,8,9},""))))))
2.黑十字往下拖,然后选中A1至A6,黑十字往右拖
3.在sheet1表 A8单元格输入公式:
=CHAR(RIGHT(SMALL(Sheet2!A$1:Sheet2!A$6,ROW(A1)),2))&LEFT(SMALL(Sheet2!A$1:Sheet2!A$6,ROW(A1)),LEN(SMALL(Sheet2!A$1:Sheet2!A$6,ROW(A1)))-2)
4.黑十字往下拖,然后选中A8至A13,黑十字往右拖
好了看下效果图:
http://s8/mw690/001up1yagy6MEY27mona7&690
这个做法呢,解决了按数字大小,从大到小排列,数字一样的情况下再根据字母大小排列,但是有一点需要注意的是,字母的大小写一定要看仔细了,一定要大写的才有用。小写的就没有用了,还有字母只能一个。
有没有办法不区分大小写,其实也可以,我心里也已经想到某个函数了,但是这里就不写下去了,谁如果到时碰到类似问题,需要我帮助的,可以留言给到我。