首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按数字和"-“进行自定义排序

按数字和"-“进行自定义排序
EN

Stack Overflow用户
提问于 2015-02-16 04:01:02
回答 1查看 97关注 0票数 0

我一直在尝试对一系列单元格进行排序,但似乎无法得到我想要的结果。单元格范围包含的值如下:

1-11-1

1-10-2

1-12-1

1-11-2

1-10-1

1-12-2

我正在寻找的结果是:

1-10-1

1-11-1

1-12-1

1-10-2

1-11-2

1-12-2

我尝试了多种不同的自定义排序(#-#-#和"0,1,2,3,4,5,6,7,8,9,-,0,1,2,3,4,5,6,7,8,9,-,0,1,2,3,4,5,6,7,8,9“),但是没有得到正确的结果。有没有可能得到我想要的排序结果,或者是否需要一个宏?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-02-16 05:08:53

按"-“将文本拆分为多个列。

按列排序: 1、3、2.在4.列中增加公式,将三列的文本拼接成一个字符串;)

就这样!

这是一个简单的宏。可自由填充以进行更改:

代码语言:javascript
复制
Sub Macro1()
    Dim rng As Range, lstRow As Integer

    Set rng = ActiveSheet.UsedRange
    lstRow = rng.Rows.Count

    rng.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="-", _
        FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
    ActiveSheet.UsedRange.Select
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("A1:A" & lstRow) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveSheet.Sort.SortFields.Add Key:=Range("C1:C" & lstRow) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveSheet.Sort.SortFields.Add Key:=Range("B1:B" & lstRow) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range("A1:C" & lstRow)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    Set rng = ActiveSheet.Range("D1")
    rng.Formula = "=CONCATENATE(A1,""-"",B1,""-"",C1)"
    rng.AutoFill ActiveSheet.Range("D1:D" & lstRow)

   'now you can copy sorted data whatever you  want ;)

    Set rng = Nothing

End Sub

注意:在使用上面的宏之前,请确保数据存在于单个列中:在本例中为A-。

干杯,Maciej

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28530501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档