Excel 从单元格中获取字符串值并按字母顺序对其字符进行排序的公式
Excel formula to take string value from cell and sort its characters in alphabetical order
你能帮我制作 Excel 从单元格中获取字符串值并按字母顺序对其字符进行排序的公式吗?
例如
原始单元格值:'BACR'
排序字符单元格:'ABCR'
编辑 2022-04-29:
随着 Office 365 中引入的动态公式的出现 Excel 我们可以使用一个简单的公式来执行此操作:
=CONCAT(SORT(MID(A1,SEQUENCE(,LEN(A1)),1),1,1,TRUE))
原文:
此 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)
你能帮我制作 Excel 从单元格中获取字符串值并按字母顺序对其字符进行排序的公式吗?
例如
原始单元格值:'BACR' 排序字符单元格:'ABCR'
编辑 2022-04-29:
随着 Office 365 中引入的动态公式的出现 Excel 我们可以使用一个简单的公式来执行此操作:
=CONCAT(SORT(MID(A1,SEQUENCE(,LEN(A1)),1),1,1,TRUE))
原文:
此 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)