在 Excel 中使用结构化引用对 AlphaNumeric 进行排序

Sort AlphaNumeric with structured references in Excel

我有一个 Excel Sheet 的数据看起来像那样。

Data
x=1.1
x=11.2
x=10.3
x=1.4
x=2.5;2.6
x=2.1
x=4.7
x=6.8
x=6.2;6.3
x=1.10

我想做的是,对看起来像这样的列表进行排序。

DataSort
x=1.1
x=1.4
x=1.10
x=2.1
x=2.5;2.6
x=4.7
x=6.2;6.3
x=6.8
x=10.3
x=11.2

我试着用那个公式来做到这一点

=LEFT(Tabelle1[[#this row];[Data]];2) & TEXT(SUBSTITUTE(Tabelle1[[#this row];[Data]];LEFT(Tabelle1[[#this row];[Data]];2);"");"#0.0#")

但这没有用。 有人可以给我提示正确的方向吗?

将数据复制到新列中说 B 如果您使用的是 excel 2007 或更高版本,请在 B

中选择数据后转到数据选项卡 --> 文本到列选项

在这里您可以选择分隔符,它会将您的数据分成两列。 然后应用基于此列的排序

在右侧未使用的列中,从第 2 行开始使用此公式,

=LEFT(A2, 2)&TEXT(--MID(A2, 3, FIND(".", A2&".")-3), "000;@")&TEXT(--MID(A2, FIND(".", A2&".")+1, 99), "000;@")

根据需要填写,然后使用 helper 列作为主要排序关键字进行常规排序。

如果您在数字前加一个 0,就可以了。

X=01.1

或者,以一种复杂的方式,按照上面的建议拆分列,按照您想要的方式排序,然后重新组合。我还会创建一个具有正确 1-n 序列的列,以防万一我需要以特定方式排序,但返回到原始排序。

问题的解决方案是:

=LEFT(IF(ISNUMBER(SEARCH(";";A1));LEFT(A1;FIND(";";A1;1)-1);A1);2)&TEXT(--MID(IF(ISNUMBER(SEARCH(";";A1));LEFT(A1;FIND(";";A1;1)-1);A1);3;FIND(".";IF(ISNUMBER(SEARCH(";";A1));LEFT(A1;FIND(";";A1;1)-1);A1)&".")-3);"000;@") &TEXT(--MID(IF(ISNUMBER(SEARCH(";";A1));LEFT(A1;FIND(";";A1;1)-1);A1);FIND(".";IF(ISNUMBER(SEARCH(";";A1));LEFT(A1;FIND(";";A1;1)-1);A1)&".")+1;99);"000;@")