classificando valores dentro de uma célula no excel

2

Eu estou querendo saber se existe uma maneira de classificar valores que são separados por uma vírgula dentro de uma célula no Microsoft Excel. Por exemplo, eu tenho uma célula que lê "49, 11" e gostaria de ler "11, 49". Alguma idéia?

    
por mark 22.01.2014 / 04:15

2 respostas

2

Considere a seguinte Função definida pelo usuário :

Public Function CellSort(r As Range) As String
    Dim bry() As Long, L As Long, U As Long
    ch = r(1).Text
    ary = Split(ch, ",")
    L = LBound(ary)
    U = UBound(ary)
    ReDim bry(L To U)
    For i = LBound(ary) To UBound(ary)
        bry(i) = CLng(ary(i))
    Next i

    Call BubbleSort(bry)

    For i = LBound(bry) To UBound(bry)
        ary(i) = CStr(bry(i))
    Next i
    CellSort = Join(ary, ",")
End Function


Sub BubbleSort(arr)
    Dim strTemp As Variant
    Dim i As Long
    Dim j As Long
    Dim lngMin As Long
    Dim lngMax As Long
    lngMin = LBound(arr)
    lngMax = UBound(arr)
    For i = lngMin To lngMax - 1
        For j = i + 1 To lngMax
            If arr(i) > arr(j) Then
                strTemp = arr(i)
                arr(i) = arr(j)
                arr(j) = strTemp
            End If
        Next j
    Next i
End Sub
    
por 22.01.2014 / 18:56
1

O recurso de classificação do Excel opera em células inteiras. Para classificar dentro de uma célula, você precisa usar um script VB. Você pode considerar dividir o conteúdo das células em colunas usando Text To Columns e depois classificando (da esquerda para a direita).

    
por 22.01.2014 / 06:00