在 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;@")
我有一个 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;@")