加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2014-10-07 10:10:35)
标签:

十字

单元格

数字

字母数字

数据

分类: 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
这个做法呢,解决了按数字大小,从大到小排列,数字一样的情况下再根据字母大小排列,但是有一点需要注意的是,字母的大小写一定要看仔细了,一定要大写的才有用。小写的就没有用了,还有字母只能一个。

有没有办法不区分大小写,其实也可以,我心里也已经想到某个函数了,但是这里就不写下去了,谁如果到时碰到类似问题,需要我帮助的,可以留言给到我。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有