宏以特殊情况对字母+数字进行排序

时间:2018-07-07 19:19:31

标签: excel excel-vba sorting excel-formula vba

我很难整理出一些东西,我需要我的工作空间。

TBK1872(2)
TKP1880
TKP1898(2)+1
TKP190
TKP1911
TKP2006-1
TKP2103(2)
TKP2195(2)+1
TKP310(2)
TKP32
TKP32+1
TKQ1267
TKQ13
TKQ138(2)

这些是我需要以特定方式订购的签名。

首先,这些签名应按字母顺序排序。 在某些情况下,可能会出现四个字母而不是三个字母的情况。 这些应该放在三个字母之后

示例:TQL,然后是TQLA之类的字母,然后是TQLB,依此类推...

然后将数字排序的时间短到2个数字,然后是3个数字,然后再选择与正常排序方式不同的数字:

TKP310(2)
TKP32
TKP32+1
TKQ1267
TKQ13

数字在第二个数字的高位排序。

此后,在某些特殊情况下,发生(2)或+1或两者的组合。 这些内容应放在方括号中的数字之后,然后再从1开始计数+1。

是否有可能为此编写排序算法? 有人可以帮我吗? 我真的很感激。

1 个答案:

答案 0 :(得分:2)

通过导入顺序中所有值的列表,您可以使用复杂的自定义排序顺序以奇数(或“特殊”)顺序进行排序你想要它。

如果列表仅包含一些项目,则将列表手动输入到自定义排序对话框中可能会更快。


使用自定义列表对数据进行排序

使用内置的自定义列表,您可以按星期几或一年中的几个月对数据进行排序。 (可选)您可以创建自己的自定义列表,以按字母顺序无法很好排序的其他任何特征(例如,高,中和低)或S,M,L,XL进行排序。

例如,使用自定义列表,您可以按交货(月)或优先级对该工作表进行排序。

Sample table

例如,要使用内置自定义列表按星期几或一年中的月份排序,请执行以下操作:

  1. 选择要排序的列。
    为获得最佳结果,每个列均应具有标题。

  2. 在功能区上,单击数据> 排序

    Sort button

  3. 在“ 排序”对话框的“ 排序依据”框中,选择要排序的列

    Sort by the delivery column

  4. 订单下拉列表中,选择自定义列表

    Sort dialog box

  5. 自定义列表标签中,选择所需的列表,然后单击确定以对工作表进行排序:

    Custom lists dialog box


创建您自己的自定义列表

  1. 在工作表的列中,输入要作为排序依据的值。按照要定义排序顺序的顺序(从上到下)排列它们。例如:

    Custom list example

  2. 在该列表列中选择单元格,然后单击文件> 选项> 高级

  3. 常规下,点击编辑自定义列表

  4. 自定义列表框中,单击 导入

    Import a custom list


  • 更多示例,信息和资源可在the source上找到。