Classificando linhas: 6 transações com informações de data e ação agrupadas

Classificando linhas: 6 transações com informações de data e ação agrupadas

Preciso organizar as informações da transação em uma planilha por ordem crescente de data. Cada linha representa uma única pessoa e as últimas 6 transações em seu histórico. O problema é que embora o banco de dados exiba as últimas 6 transações, ele não o faz em ordem, então preciso fazer isso manualmente no Excel.

A data da transação e a data de vencimento devem permanecer vinculadas aos dados "É Presente" e "Ação", portanto, o uso de funções de classificação de linhas não funciona para este aplicativo. Essas quatro colunas precisam ser mantidas juntas como um grupo.

Na captura de tela anexa, usei cores para mostrar como as colunas precisam permanecer agrupadas e destacadas em vermelho, a transação que DEVERIA ter ocorrido primeiro se os dados estivessem na ordem correta. Espero que isso dê uma indicação mais clara do problema ("primeiros" estão em colunas diferentes para cada indivíduo) e qual é o meu objetivo (que cada grupo de colunas seja classificado, em ordem crescente de data, por linha).

Captura de tela com notas

Responder1

Experimente este código. Cole isso na janela do Editor VB e execute-o (google 'como executar o código vba' para obter mais ajuda). Isso não é nada eficiente, mas deve funcionar.

Sub Some_Sorting_Procedure()
    Dim r As Long, last_row As Long
    Dim i As Long, j As Long
    Dim arr As Variant

    Application.ScreenUpdating = False

    With ActiveSheet
        last_row = .Cells(.Rows.Count, 1).End(xlUp).Row
        For r = 2 To last_row
            For i = 3 To 23 Step 4
                For j = i + 4 To 23 Step 4
                    If .Cells(r, i).Value > .Cells(r, j).Value Then
                        arr = .Cells(r, j).Resize(, 4).Value
                        .Cells(r, i).Resize(, 4).Cut .Cells(r, j)
                        .Cells(r, i).Resize(, 4).Value = arr
                    End If
                Next j
            Next i
        Next r
    End With
End Sub

Editar

Isso pressupõe que seus dados comecem em cell A1e que não haja células vazias na primeira coluna. O valor codificado 23é porque você mencionou que haveria apenas seis transações. Você precisará aumentar esse número em 4 para cada transação extra.

informação relacionada