2016-08-22 95 views
0

您能否幫助我製作從單元格獲取字符串值並按字母順序對其字符進行排序的Excel公式?Excel公式從單元格中獲取字符串值並按字母順序對其字符進行排序

Ex。

原始細胞值: 'BACR' 排序字符單元: 'ABCR'

+4

向我們展示你已經嘗試什麼,在哪裏,你遇到了麻煩。你使用的是什麼版本的Excel? –

+0

「無限」長度的字符串,全部是否爲alpha? - VBA是否可以接受? – pnuts

+0

你正在使用的功能/代碼是什麼? – BruceWayne

回答

1

此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 

將這個是一個模塊附加到工作簿,而不是在工作表或ThisWorkbook代碼中。

然後,它可以被稱爲像任何其他配方

=sortletter(A1) 

enter image description here

+0

哇!你搖滾!謝謝! –

相關問題