我们有一个很大的 Excel 电子表格,里面有很多香水。我们用它导入我们的网站。其中很多都是同一种香水,但瓶子大小不同。
我们用于排序的主列是香水名称,后面是毫升大小。这会导致字符串末尾有一个数字,但不是全部:Fragrance 1 30ml
在 Excel 2016 中,如果某款香水有 30 毫升和 50 毫升两种瓶装,那么它就是按顺序排列的,因为第一个不同的字符“3”和“5”可以正确排序。但是,当然,如果你有 100 毫升或 200 毫升的瓶子,它们会排在 30 毫升和 50 毫升瓶子的上方,导致顺序不正确。由于网站直接从此电子表格导入,我们需要 Excel 正确排序,先按名称排序,然后按数字递增排序。
有没有办法以某种方式对它们进行排序,以便它们首先是最小的(即使我需要在旁边的新列中添加公式)?
请记住,每个产品都有很多包含其他信息的列,因此需要能够进行过滤,以使其他属性与同一产品保持一致
举例来说:
瓶子 |
---|
香水1 100ml |
香水1 200ml |
香水1 30ml |
香水1 50ml |
您需要提取数字并按其排序。在本例中,数字位于最后一个空格和“ml”之间。因此,我们可以使用以下公式:
在 2016 版本中,您可以使用辅助列。在第一个(
G
屏幕截图中的 col.)中,我们放置一个表示基本名称的片段,在第二个(col.L
)中放置包装的容量(数字)。我使用了以下公式:col.
G
:=LEFT(A9,SEARCH("ml",A9)-LEN(L9)-2)
col.:
L
选择=--RIGHT(SUBSTITUTE(LEFT(A9,SEARCH("ml",A9)-1)," ",REPT(" ",10)),10)
所有数据并根据两个标准执行标准排序:第一个是列中的名称
G
,第二个是列中的数字L
。辅助列可以隐藏。