2014-06-16 137 views
0

我想知道是否有方法,无论是在VBA或Excel中,按照数值递增的顺序对字母数字字符列表进行排序?字母数字排序按照升序排列数值?

例如:

鉴于号码列表:

  • 40T1000
  • 40T989
  • 40T421
  • 40T654
  • 40T532

我怎样才能对它们进行排序为:

  • 40T421
  • 40T532
  • 40T654
  • 40T989
  • 40T1000
+0

是否有这个字符串的一致性进行排序的cols 一个&乙? XXZXXXX?它总是以“40T”或3个字符,或一个字母或......开始的。 – Ken

+0

该字符串总是以40T形式表示(与“------”不同数量的尾随值)。 – VBAnoob

+0

有意愿的地方有一种方法。你有没有考虑尝试一些? –

回答

0

你可以只在另一列中提取的最后一个数字部分和根据该列中的值对整个范围进行排序。

例如,如果您的数据列在列A中,则可以使用列B中的此公式来提取字符串值的最后部分。也就是说,部分以“T”,右边不管有多少个字符中有“T”的前面:

=MID(A1,FIND("T",A1)+1;LEN(A1)-FIND("T",A1)) 
1

栏中将A中的数据,B1进入:

=--MID(A1,4,9999) 

并复制下来。

然后通过

+1

我建议的一个改进:使公式=值(MID(A1,4,9999))。在排序时,它将删除“按数字提示排序”,并清楚地突出显示可能具有无效值的任何内容(如尾随字符) – Ken

+0

@Ken:.........好主意! –