TG的Excel达人进,求解答一个排序问题,谢谢
- agame对一列数据排序,每个单元格中的数据样式为:
aaaaa(18)
bbb(20)
ccccccc(6)
xxxx(25)
能不能按每行数据括号中的数字进行排序操作?极感谢! - Jonsoncao可以,但要用vba写一小段程序
搞一个类似getchar的函数
getchar函数取括号之后的数字,遇到后括号就停止
按照getchar输出对原来的sheet排序即可,另外要用到一个temp的sheet来储存正在排序的原始数据
比如你getchar某个原始数据的数据之后,令输入数据变成getchar输出的数字的那一行或者列里面储存在temp sheet中
[本帖最后由 Jonsoncao 于 2007-10-17 23:51 编辑] - Jonsoncao另外说一个事情
就是建这个spreadsheet的人太不照顾别人了
明显数字和前面的名字是两个属性,偏偏塞到一个cell里面,这是建立spreadsheet的大忌
楼主如果能提醒下建这个spreadsheet的人的话以后也不会遇到这么浪费计算资源的问题了 - FoxfoO如上面的所言,关键是要把括号里的数字提取出来
如果不会VBA的话,有一个稍微麻烦点的办法:
假设你的数据在A列
那么你在B列同一行中写(假设你括号里的数字是两位数):
=right(a1,4)
然后把B列中的结果手工处理一下即可 - FoxfoO估计是从TXT文件或什么来源中直接复制过来的
有些公司的文档就是这个样子的 - Jonsoncao同情一下
- beatmania楼上各位都高深了……
我说一个较简单的方法吧,用excel的分列,判定符号就是(和),然后对数字那列排序,然后再合并回去就行了,合并的函数可以用 =A1&B1 这样的 - 盐水棒冰的替身用宏有点牛刀杀鸡了
用substring系的函数又比较难做好
单元格拷贝后用切割出数字列应该是最佳途径
或者索性从源头解决,txt 里复制过来时也可以先用tab替换(),然后一贴就到分离的单元格里去了
[本帖最后由 盐水棒冰的替身 于 2007-10-18 09:54 编辑] - agame我对excel非常之不熟悉,昨天晚上恶补了三个小时
非常感谢LS各位的解答
其实我写个VB的小程序比用EXCEL搞定容易得多,不过既然看了就好好学会这个技巧。再次感谢。 - agame您的这种方法是最简便最迅速的解决之道
- jinwyp4 楼和 7楼 都是标准 答案 不用什么麻烦的vba
要按 括号里 的数字排序 第一步就是 把括号里的数字弄出来
分列是最好也是最简单的一种解法 用excel的分列 功能按 ( 分列 在按 ) 分列 数字就弄出来
然后按分出来的数字怎么排序就随便了
另一种把数字弄出来 就是用 right 函数 取倒数几个字符 如括号里 都是2位数的话 用 =right(a1,3) 就能得到 18) 然后在用left(b1,2) 就能得到18这个数字
当然如果如括号里 都是不同位数的数字的话 就要多写几个 =right(a1,4) 取3位数字 =right(a1,2)取1位数值
没有分列简单. - 水星的爱楼上才是真达人,看我这个伪达人简单说明一下操作。楼主看仔细了哦!
用CtrlF,查找“(” 然后全部替换成一长串空格
用“文本到列”的那个功能,把这一列,变成两列,然后就能排序了。
超级简单吧,哈哈