Exibe os dados da coluna no Excel que correspondem às datas de hoje ou à semana atual

0

Eu tenho uma planilha do excel com 15 colunas, incluindo uma coluna de data. É possível copiar para outra planilha que mostrará apenas as colunas / dados com a data de hoje? Ou a semana?

(É difícil navegar pelos dados todos os dias para encontrar a data.)

    
por user3773444 09.02.2018 / 19:04

1 resposta

1

Eu gostaria de sugerir dois métodos diferentes.

Um é uma fórmula de matriz e segundo é o código VBA. Filtrar registros corresponde à data atual.

{=IFERROR(INDEX(Sheet1!$A$4:$D$10, SMALL(IF(COUNTIF(Sheet1!$E$4, Sheet1!$A$4:$A$10), ROW(Sheet1!$A$4:$D$10)-MIN(ROW(Sheet1!$A$4:$D$10))+1), ROW(A1)), COLUMN(A1)),"")}

NB:

E4 é Cell onde a data de hoje é escrita. Conclua a fórmula com Ctrl + Shift + Enter e arraste para a direita até as colunas necessárias e, em seguida, para baixo.

Se você tiver um enorme Intervalo de dados, use este Código VBA.

Sub CopyRowWithCurrentDate()

    Dim xRgS As Range, xRgD As Range, xCell As Range
    Dim I As Long, xCol As Long, J As Long
    Dim xVal As Variant

    On Error Resume Next

    Set xRgS = Application.InputBox("Select the Date Column:", "Filter On Date", Selection.Address, , , , , 8)

    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Select a destination cell:", "Filter On Date", , , , , , 8)

    If xRgD Is Nothing Then Exit Sub
    xCol = xRgS.Rows.Count
    Set xRgS = xRgS(1)
    Application.CutCopyMode = False

    J = 0
    For I = 1 To xCol
        Set xCell = xRgS.Offset(I - 1, 0)
        xVal = xCell.Value

        If TypeName(xVal) = "Date" And (xVal <> "") And (xVal = Date) Then 'You should manipulate the days you are filtering by typing accurate days!
            xCell.EntireRow.Copy xRgD.Offset(J, 0)
            J = J + 1
        End If

    Next

    Application.CutCopyMode = True

End Sub

Espero que isso ajude você.

    
por 11.02.2018 / 15:09