Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3058|回复: 17

[已解决]如何让附件中的数按照要求的顺序排列呢?谢谢!

[复制链接]
发表于 2014-1-14 18:56 | 显示全部楼层 |阅读模式
本帖最后由 westwenwei 于 2014-1-14 19:10 编辑

如何让附件中的数按照要求的顺序排列呢?谢谢!(要求是123456789AB)
最佳答案
2014-1-14 20:58
westwenwei 发表于 2014-1-14 19:52
我将附件做了一下修改,还麻烦您给看看,谢谢了!
  1. =CHOOSE(SUM(ISNUMBER(FIND({"A","B"},A1&"0"))*{1,1})+1,SUM(CHAR(SMALL(CODE(MID(A1&"0",ROW($1:$5),1)),ROW($1:$5)))*10^(5-ROW($1:$5))),SUM(CHAR(SMALL(CODE(MID(A1&"0",ROW($1:$5),1)),ROW($1:$4)))*10^(4-ROW($1:$4)))&CHAR(MAX(CODE(MID(A1&"0",ROW($1:$5),1)))),SUM(CHAR(SMALL(CODE(MID(A1&"0",ROW($1:$5),1)),ROW($1:$3)))*10^(3-ROW($1:$3)))&CHAR(SMALL(CODE(MID(A1&"0",ROW($1:$5),1)),4))&CHAR(MAX(CODE(MID(A1&"0",ROW($1:$5),1)))))
复制代码
c1输入,三键结束,下拉
QQ截图20140114205733.png

qiuzhu.zip

6.6 KB, 下载次数: 15

发表于 2014-1-14 19:23 | 显示全部楼层
回复

使用道具 举报

发表于 2014-1-14 19:37 | 显示全部楼层
楼主解题规则可有要求?
比如要求函数,能否借用辅助列,或者不限VBA什么的?
回复

使用道具 举报

 楼主| 发表于 2014-1-14 19:42 | 显示全部楼层
不信这样还重名 发表于 2014-1-14 19:37
楼主解题规则可有要求?
比如要求函数,能否借用辅助列,或者不限VBA什么的?

最好是函数,谢谢!
回复

使用道具 举报

发表于 2014-1-14 19:44 | 显示全部楼层
你的附件单元格里有0,0的位置在哪?
回复

使用道具 举报

 楼主| 发表于 2014-1-14 19:52 | 显示全部楼层
tgydslr 发表于 2014-1-14 19:44
你的附件单元格里有0,0的位置在哪?

我将附件做了一下修改,还麻烦您给看看,谢谢了!

qiuzhu.zip

6.6 KB, 下载次数: 4

回复

使用道具 举报

发表于 2014-1-14 20:58 | 显示全部楼层    本楼为最佳答案   
westwenwei 发表于 2014-1-14 19:52
我将附件做了一下修改,还麻烦您给看看,谢谢了!
  1. =CHOOSE(SUM(ISNUMBER(FIND({"A","B"},A1&"0"))*{1,1})+1,SUM(CHAR(SMALL(CODE(MID(A1&"0",ROW($1:$5),1)),ROW($1:$5)))*10^(5-ROW($1:$5))),SUM(CHAR(SMALL(CODE(MID(A1&"0",ROW($1:$5),1)),ROW($1:$4)))*10^(4-ROW($1:$4)))&CHAR(MAX(CODE(MID(A1&"0",ROW($1:$5),1)))),SUM(CHAR(SMALL(CODE(MID(A1&"0",ROW($1:$5),1)),ROW($1:$3)))*10^(3-ROW($1:$3)))&CHAR(SMALL(CODE(MID(A1&"0",ROW($1:$5),1)),4))&CHAR(MAX(CODE(MID(A1&"0",ROW($1:$5),1)))))
复制代码
c1输入,三键结束,下拉
QQ截图20140114205733.png

1.rar

8 KB, 下载次数: 4

回复

使用道具 举报

发表于 2014-1-14 20:59 | 显示全部楼层
思路理清后,还是可解的,只是头都绕大了
公式如下:
=IF(FIND("A",A1&"0A")<=LEN(A1),IF(FIND(0,A1&"0A")<=LEN(A1),SUBSTITUTE(SUM(IFERROR(FIND(ROW($1:$9),A1&"0A")<=LEN(A1),0)*ROW($1:$9)*10^(10-ROW($1:$9))),0,)&"0A",SUBSTITUTE(SUM(IFERROR(FIND(ROW($1:$9),A1)>0,0)*ROW($1:$9)*10^(10-ROW($1:$9))),0,)&"0"),IF(FIND(0,A1&"0A")<=LEN(A1),SUBSTITUTE(SUM(IFERROR(FIND(ROW($1:$9),A1)>0,0)*ROW($1:$9)*10^(10-ROW($1:$9))),0,)&0,SUBSTITUTE(SUM(IFERROR(FIND(ROW($1:$9),A1)>0,0)*ROW($1:$9)*10^(10-ROW($1:$9))),0,)))
回复

使用道具 举报

发表于 2014-1-14 21:02 | 显示全部楼层
附件上传一个 字符排序.zip (8.4 KB, 下载次数: 0)
回复

使用道具 举报

发表于 2014-1-14 21:08 | 显示全部楼层
我的解题思路是
    先把在1-9中出现的数字弄出来,有了这个,我们就可以用10的N次方求和,再把0替掉,就得到了1-9数字的升序排列
    然后再分字符中是否有0或者A来分情况讨论
相信高手可以把这个公式再精简些,我懒,能弄出结果就不去折腾了,楼主工作中急用就先用我的公式,但后面的解答肯定是更精彩了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-30 06:30 , Processed in 0.280555 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表