Excel 对字母数字数据进行自定义排序

Excel 对字母数字数据进行自定义排序

我在 Excel 文件中有数据:

Brandon 1
Brandon 10
Brandon 11
Brandon 2
Brandon 3
Brandon 4
John 1
John 2
John 20
John 21
John 22 
John 3
John 4 

我想先按名称排序,然后按数字排序:

Brandon 1
Brandon 2
Brandon 3
Brandon 4
Brandon 10
Brandon 11
John 1
John 2
John 3
John 4 
John 20
John 21
John 22 

有什么建议吗?我不想在数字前添加零。

答案1

创建第二个包含数字的列。您可以使用第二个公式来填充该列

如果数字不超过 99

  • A1:布兰登 1

  • B1:=VALUE(RIGHT(A1;2))

否则先找到最后一个空格

  • B1:=VALUE(RIGHT(A1,LEN(A2)-FIND("@",SUBSTITUTE(A2," ","@",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))),1)))

https://trumpexcel.com/find-characters-last-position/

答案2

其中一个选择是:

  1. 将列拆分为 2 列。可以使用以下方法完成:

    1.1. 数据->文本分列-> ...

    1.2. 公式(我的 Excel 是西班牙语的,所以我可能略微忘记了函数的名称)。假设您的数据在 D1 中,名称使用=LEFT(D1,FIND(" ",D1)-1),数字使用=INT(RIGHT(D1,LEN(D1)-FIND(" ",D1)))=VALUE(RIGHT(D1,LEN(D1)-FIND(" ",D1)))。然后复制公式。

  2. 使用数据->种类添加级别按这两个标准进行排序。

您可以在执行此操作时录制宏,以通过 VBA 自动执行该过程。您甚至可以通过 VBA 将所有这些压缩为用户定义函数。

答案3

您的问题可以通过使用帮助列来解决:

在此处输入图片描述

怎么运行的:

  • 我假设名称在A2:A9
  • 输入此公式C2并填写。

    =TEXT(A2,"###")

  • 选择范围A1:C9

  • 主页标签点击种类图标和选择自定义排序

  • 设置排序顺序和其他内容,如下面的屏幕截图所示。

在此处输入图片描述

  • 完成好的

您按预期的顺序找到名称。

在此处输入图片描述

編輯:

由于 OP 获得了一组新的样本数据,所以我正在进行编辑。

  • 可以使用一些辅助列按所需顺序对新数据集进行排序。

在此处输入图片描述

  • 输入此公式B2并填写。

    =VALUE(RIGHT(A2,LEN(A2) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, A2&"0123456789")) +1))
    
  • 写下这个C2并填写。

=LEFT(A2,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A2&1234567890))-1)

  • 现在选择A1:C14&从主页标签点击种类命令并命中自定义排序
  • 设置顺序和其他,如下面的屏幕截图所示。 在此处输入图片描述
  • 完成好的

您将按所需顺序获得新的数据集。

在此处输入图片描述

笔记, 稍后您可以隐藏辅助列。

相关内容