在 Excel 中按从小到大的顺序对运输箱尺寸进行排序

在 Excel 中按从小到大的顺序对运输箱尺寸进行排序

我有一个 500 多行的盒子尺寸电子表格,我需要按从最小盒子到最大盒子的顺序排列。

我有一个辅助列:

=1*LEFT(D2,FIND(" ",D2)-1)

另一个辅助列

+MID(D2,M2,FIND("X",D2,M2)-M2)

我不知道如何处理最后一个维度,以及如何让它按 1,2,3......10,11,12 排序,而不是 1,10,11,2,22 等排序?

以下是电子表格中尺寸的一个小样本。

5 X 5 X 10
5 X 5 X 3
5 X 5 X 4
6 X 4 X 3-1/2
6-3/4 X 6-3/4 X 12-1/8
6-3/4 X 6-3/4 X 7-3/4

非常感谢你的帮助。

答案1

您可以使用一个公式并将其拖到三列上,然后将所有三列拖到列表中:

=--SUBSTITUTE(TRIM(MID(SUBSTITUTE($D1,"X",REPT(" ",999)),(COLUMN(A1)-1)*999+1,999)),"-"," ")

从内部开始:

SUBSTITUTE($D1,"X",REPT(" ",999))创建一个在三个测量值之间具有较大空格的字符串。

MID(...,(COLUMN(A1)-1)*999+1,999)将从该字符串中选择 999 个字符。第一列中的第一个 999 个字符,然后以此类推。

TRIM(...)删除所有多余的空格。

SUBSTITUTE(...,"-"," ")将 改为-空格。这会将分数转换为 Excel 可以识别的形式。

--将字符串转换为数字。

现在按顺序对三列进行排序。

在此处输入图片描述

答案2

添加带有卷的辅助列,然后按该列排序:

辅助列公式(Windows Excel 2013+):

=PRODUCT(--SUBSTITUTE(FILTERXML("<t><s>" & SUBSTITUTE(SUBSTITUTE(A2,"-","~")," ","</s><s>") & "</s></t>","//s[not(contains(.,'X'))]"),"~"," "))

在此处输入图片描述

相关内容