Excel公式从单元格中获取string值并按字母顺序对其字符进行sorting

你能帮我制作一个从string中取出string值并按字母顺序排列字符的Excel公式吗?

防爆。

原始单元格值:' BACR 'sorting字符单元格:' ABCR '

这个UDF将按字符对数字和文本进行sorting:

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 

把这个模块附加到工作簿,而不是在工作表或ThisWorkbook代码中。

那么它可以像任何其他公式一样被调用

 =sortletter(A1) 

在这里输入图像说明