简体   繁体   English

Excel公式从单元格获取字符串值并按字母顺序对其字符排序

[英]Excel formula to take string value from cell and sort its characters in alphabetical order

Can you please help me to make Excel formula that takes string value from cell and sorts its characters in alphabetical order? 您能帮我制作一个Excel公式,该公式从单元格中获取字符串值并按字母顺序对其字符进行排序吗?

Ex. 例如

original cell value: ' BACR ' sorted characters cell: ' ABCR ' 原始单元格值:“ BACR ”,已排序的字符单元格:“ ABCR

This UDF will sort numbers and Text character by character: 此UDF将按字符对数字和文本字符进行排序:

Function sortletter(rng As Range)
    If rng.Count > 1 Then Exit Function
    Dim srtArr() As String
    Dim i&, j&, k&
    ReDim srtArr(1 To Len(rng))
    srtArr(1) = Mid(rng, 1, 1)
    For i = 2 To UBound(srtArr)
        For j = 1 To UBound(srtArr)
            If srtArr(j) = "" Then
                srtArr(j) = Mid(rng, i, 1)
                Exit For
            ElseIf IIf(Asc(Mid(rng, i, 1)) > 96, Asc(Mid(rng, i, 1)) - 32, Asc(Mid(rng, i, 1))) <= IIf(Asc(srtArr(j)) > 96, Asc(srtArr(j)) - 32, Asc(srtArr(j))) Then
                For k = UBound(srtArr) To j + 1 Step -1
                    srtArr(k) = srtArr(k - 1)
                Next k
                srtArr(j) = Mid(rng, i, 1)
                Exit For
            End If
        Next j
    Next i
    sortletter = Join(srtArr, "")
End Function

Put this is a module attached to the workbook, NOT in the worksheet or ThisWorkbook code. 将其放在工作簿中,而不是工作表或ThisWorkbook代码中。

Then it can be called like any other formula 然后可以像其他公式一样调用它

=sortletter(A1)

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM