Contar días en un rango mientras se repita el valor en otra celda

Hola, tengo una base de datos con distintas columnas en las que hay fechas y errores

ej:

01-02-2014 err1

02-02-2014 err1

03-02-2014 err1

01-02-2014 err2

01-02-2014 err2

01-02-2014 err2

02-02-2014 err4

02-02-2014 err4

04-02-2014 err4

lo que quiero es una formula o macro que me diga cuantos días y cuantas veces se viene repitiendo un mismo error que seria así:

err1 se repite 3 veces 3 días

err2 se repite 3 veces 1 día

err4 se repite 3 veces 2 días

llevo días buscando algo y no encuentro nada, llego solamente al calculo de las veces con las formula contar si pero la cantidad de días no puedo

espero que alguien me pueda ayudar

gracias.

1 respuesta

Respuesta
1

Te mando la solución con este ejemplo.. Sigue estas instrucciones:

-En la columna A desde A1 hacia abajo escribe las fechas

-En la columna B desde B1 hacia abajo escribe los errores

-Ahora solo queda ejecutar esta macro:

Sub proceso()
'por luismondelo
Range("b1").Select
Do While ActiveCell.Value <> ""
valor = ActiveCell
Do While ActiveCell.Value = valor
If InStr(lista, ActiveCell.Offset(0, -1).Value) = 0 Then
lista = lista & "," & ActiveCell.Offset(0, -1).Value
End If
ActiveCell.Offset(1, 0).Select
Loop
lista = Mid(lista, 2, Len(lista) - 1)
lista2 = Split(lista, ",")
For x = 0 To UBound(lista2)
Next
Range("d65000").End(xlUp).Offset(1, 0).Value = valor
Range("e65000").End(xlUp).Offset(1, 0).Value = "Se repite: " & x & " veces"
Range("f65000").End(xlUp).Offset(1, 0).Value = "En estos días: " & lista
lista = ""
Loop
ActiveSheet.Columns("d:f").EntireColumn.AutoFit
End Sub

recuerda finalizar

Muchas gracias es lo que quiero, pero hay un detalle, la macro cuenta los días y me dice la cantidad de días que se viene repitiendo, pero ademas quiero que me diga cuantas veces se repite el error, por que por ej. un error se puede repetir 100 veces en 2 días y este solamente cuenta los días... gracias

Ok, entonces podrías dejar la macro así:

Sub proceso()
'por luismondelo
Range("b1").Select
Do While ActiveCell.Value <> ""
valor = ActiveCell
Do While ActiveCell.Value = valor
If InStr(lista, ActiveCell.Offset(0, -1).Value) = 0 Then
lista = lista & "," & ActiveCell.Offset(0, -1).Value
c = c + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
lista = Mid(lista, 2, Len(lista) - 1)
lista2 = Split(lista, ",")
For x = 0 To UBound(lista2)
Next
Range("d65000").End(xlUp).Offset(1, 0).Value = valor
Range("e65000").End(xlUp).Offset(1, 0).Value = "Se repite: " & c & " veces"
Range("f65000").End(xlUp).Offset(1, 0).Value = "En estos días: " & lista
lista = ""
c = 0
Loop
ActiveSheet.Columns("d:f").EntireColumn.AutoFit
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas