[英]Excel 2016 - Sort value in cell in ascending order
請嘗試用逗號分隔單個單元格中的數據,然后對其進行排序並將所有這些數據組合在一起?
注釋為您提供了多種對數組進行排序的方法。 無論對錯,我都提供了我自己對舊的 VBA 主題的看法,以及以分隔格式輸出字符串的擴展部分。 要么接受,要么離開它...!
您應該能夠直接從任何給定的單元格中參考下面的 function,就像在 Excel 中的任何內置 function 一樣。
Public Function SplitAndSortAscending(ByVal strText As String, ByVal strDelimiter As String) As String
Dim arrData() As String, arrNewData() As String, i As Long, x As Long, y As Long
arrData = Split(strText, strDelimiter)
ReDim arrNewData(UBound(arrData))
For i = 0 To UBound(arrData)
For x = 0 To UBound(arrNewData)
If arrData(i) < arrNewData(x) Or arrNewData(x) = "" Then
For y = UBound(arrNewData) To x + 1 Step -1
arrNewData(y) = arrNewData(y - 1)
Next
arrNewData(x) = arrData(i)
Exit For
End If
Next
Next
For i = 0 To UBound(arrNewData)
SplitAndSortAscending = SplitAndSortAscending & strDelimiter & arrNewData(i)
Next
SplitAndSortAscending = Mid(SplitAndSortAscending, Len(strDelimiter) + 1)
End Function
如果你有 O365,你可以使用類似下面的東西來實現同樣的事情。 請注意,我的實現將采用1.0
並將其格式化為整數,即輸出為1
。
=TEXTJOIN(",",TRUE,SORT(FILTERXML("<r><v>" & SUBSTITUTE(A1,",","</v><v>") & "</v></r>","//v")))
假設您提供的示例位於單元格A1
中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.