用Excel中的结构化引用对AlphaNumeric进行sorting

我有一个Excel工作表,看起来像这样的数据。

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 

我想要做的是,对它看起来像那样的列表进行sorting。

 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或更高版本,在Bselect数据后,转到数据选项卡 – >文本到列选项

在这里你可以select分隔,它会将你的数据分成2列。 然后应用基于此列的sorting

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

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

根据需要填写,然后使用辅助列作为主要sorting键进行常规sorting。

按助手栏排序

如果你在数字之前加一个0,那么会照顾它。

X = 01.1

或者,以一种复杂的方式,按照上面的build议拆分列,根据需要进行分类,然后重新组合。 我也会创build一个正确的1-n序列的列,以防万一我需要以特定的方式sorting,但是回到原来的sorting。

解决问题的办法是:

 =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;@")