Excel在2位数之前对3位数组合数字进行排序

时间:2015-06-11 15:23:51

标签: excel

以下是我想要解决的我的清单。问题是Excel正在根据我假设的提升字符对其进行排序,因此130比“14”更少。是否有VBA函数来解决这个问题?我试图将格式更改为文本,数字,小数等,但似乎没有任何效果。它区分大小写,所以我不能在14之前输入0,就像我想要的那样!

这就是excel对数字进行排序的方式:

  • 2A-130.1
  • 2A-14
  • 2A-150.1
  • 2A-22
  • 2A-22
  • 2A-22
  • 2A-41
  • 2A-86
  • 2A-86
  • 2C-12

这就是我要找的:

  • 2A-14
  • 2A-22
  • 2A-22
  • 2A-22
  • 2A-41
  • 2A-86
  • 2A-86
  • 2A-130.1
  • 2A-150.1
  • 2C-12

编辑:::尝试使用帮助列后,现在这就是数据的样子

  • 2C-12
  • 2A-14
  • 2A-22
  • 2A-22
  • 2A-22
  • 2A-41
  • 2A-86
  • 2A-86
  • 2A-130.1

使用如下所示的Helper列:

  • 12
  • 14
  • 22
  • 22
  • 22
  • 41
  • 86
  • 86
  • 130.1

使用此公式=RIGHT(B2,(LEN(B2))-FIND("-",B2,1)*1)

正如你可以告诉C在A之前,因为现在它只是按数字排序。注释中引用的页面帮助很大,但是那些有一个常量变量,它们指的是我的数字后面可以是任何字母。

2 个答案:

答案 0 :(得分:1)

我设法得到了以下公式的结果:

我的工作表布局如下:

enter image description here

和公式:

B1: =MID(A1,2,1) (只是为了得到这封信,你可以用几种方法检索它)

C1: =IFERROR(REPLACE(RIGHT(A1,LEN(A1)-FIND("-",A1,1)),FIND(".",RIGHT(A1,LEN(A1)-FIND("-",A1,1)),1),1,","),RIGHT(A1,LEN(A1)-FIND("-",A1,1))) (要获取数字并将#34;。"转换为","这是我的小数点分隔符)

然后我申请了#34; Custom Sort"在"排序和过滤"如下:

enter image description here

如果你收到任何警告:

enter image description here

如果一切顺利,你应该得到如下结果:

enter image description here

答案 1 :(得分:0)

Dubison发布了什么,但略有不同。他的假设是起始数字始终为2,而无论起始数字是多少都包括在内(包括像37这样的多位数值):

数据和排序设置: enter image description here

排序对话框:
enter image description here