[英]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.