TG的Excel达人进,求解答一个排序问题,谢谢

  • a
    agame
    对一列数据排序,每个单元格中的数据样式为:
    aaaaa(18)
    bbb(20)
    ccccccc(6)
    xxxx(25)

    能不能按每行数据括号中的数字进行排序操作?极感谢!
  • J
    Jonsoncao
    可以,但要用vba写一小段程序

    搞一个类似getchar的函数

    getchar函数取括号之后的数字,遇到后括号就停止

    按照getchar输出对原来的sheet排序即可,另外要用到一个temp的sheet来储存正在排序的原始数据

    比如你getchar某个原始数据的数据之后,令输入数据变成getchar输出的数字的那一行或者列里面储存在temp sheet中

    [本帖最后由 Jonsoncao 于 2007-10-17 23:51 编辑]
  • J
    Jonsoncao
    另外说一个事情

    就是建这个spreadsheet的人太不照顾别人了

    明显数字和前面的名字是两个属性,偏偏塞到一个cell里面,这是建立spreadsheet的大忌

    楼主如果能提醒下建这个spreadsheet的人的话以后也不会遇到这么浪费计算资源的问题了
  • F
    FoxfoO
    如上面的所言,关键是要把括号里的数字提取出来
    如果不会VBA的话,有一个稍微麻烦点的办法:
    假设你的数据在A列
    那么你在B列同一行中写(假设你括号里的数字是两位数):
    =right(a1,4)
    然后把B列中的结果手工处理一下即可
  • F
    FoxfoO
    估计是从TXT文件或什么来源中直接复制过来的
    有些公司的文档就是这个样子的
  • J
    Jonsoncao
    同情一下
  • b
    beatmania
    楼上各位都高深了……
    我说一个较简单的方法吧,用excel的分列,判定符号就是(和),然后对数字那列排序,然后再合并回去就行了,合并的函数可以用 =A1&B1 这样的
  • 盐水棒冰的替身
    用宏有点牛刀杀鸡了
    用substring系的函数又比较难做好

    单元格拷贝后用切割出数字列应该是最佳途径
    或者索性从源头解决,txt 里复制过来时也可以先用tab替换(),然后一贴就到分离的单元格里去了

    [本帖最后由 盐水棒冰的替身 于 2007-10-18 09:54 编辑]
  • a
    agame
    我对excel非常之不熟悉,昨天晚上恶补了三个小时

    非常感谢LS各位的解答

    其实我写个VB的小程序比用EXCEL搞定容易得多,不过既然看了就好好学会这个技巧。再次感谢。
  • a
    agame
    您的这种方法是最简便最迅速的解决之道
  • j
    jinwyp
    4 楼和 7楼 都是标准 答案 不用什么麻烦的vba

    要按 括号里 的数字排序 第一步就是 把括号里的数字弄出来

    分列是最好也是最简单的一种解法 用excel的分列 功能按 ( 分列 在按 ) 分列 数字就弄出来
    然后按分出来的数字怎么排序就随便了

    另一种把数字弄出来 就是用 right 函数 取倒数几个字符 如括号里 都是2位数的话 用 =right(a1,3) 就能得到 18) 然后在用left(b1,2) 就能得到18这个数字
    当然如果如括号里 都是不同位数的数字的话 就要多写几个 =right(a1,4) 取3位数字 =right(a1,2)取1位数值
    没有分列简单.
  • 水星的爱
    楼上才是真达人,看我这个伪达人简单说明一下操作。楼主看仔细了哦!

    用CtrlF,查找“(” 然后全部替换成一长串空格

    用“文本到列”的那个功能,把这一列,变成两列,然后就能排序了。

    超级简单吧,哈哈