用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或更高版本,在B
select数据后,转到数据选项卡 – >文本到列选项
在这里你可以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;@")