Excel - Contar entre fechas excel

 
Vista:

Contar entre fechas excel

Publicado por Damyán Tomasini (4 intervenciones) el 30/10/2019 16:09:52
Buenos días.

Tengo un macro que cuenta unas serie de datos de una tabla. por medio de éste código inserto las fórmulas en las celdas...

1
2
3
4
5
For i = 1 To 12 'Conteo total por turno
    Cells(10, columna).FormulaLocal = "=CONTAR.SI.CONJUNTO(Hoja1!C5:C65000;" & Chr(34) & i & Chr(34) & _
        ";Hoja1!J5:J65000;" & Chr(34) & "MATUTINO" & Chr(34) & _
        ";Hoja1!G5:G65000;" & Chr(34) & eCort & Chr(34) & _
        ";Hoja1!E5:E65000;" & Chr(34) & "" & Chr(34) & ")"

Y funciona, ahora, cuando agrego al conteo un filtro por fechas, siempre me da 0. Ejemplo...

1
2
3
4
5
6
7
For i = 1 To 12 'Conteo total por turno
    Cells(10, columna).FormulaLocal = "=CONTAR.SI.CONJUNTO(Hoja1!C5:C65000;" & Chr(34) & i & Chr(34) & _
        ";Hoja1!J5:J65000;" & Chr(34) & "MATUTINO" & Chr(34) & _
        ";Hoja1!A5:A65000;" & Chr(34) & ">=" & fInicial & Chr(34) & _
        ";Hoja1!A5:A65000;" & Chr(34) & "<=" & fFinal & Chr(34) & _
        ";Hoja1!G5:G65000;" & Chr(34) & eCort & Chr(34) & _
        ";Hoja1!E5:E65000;" & Chr(34) & "" & Chr(34) & ")"

La verdad no me doy cuenta del error que cometo para que no aplique esa parte del conteo. Así queda la celda que inserta...

1
=CONTAR.SI.CONJUNTO(Hoja1!C5:C65000;"1";Hoja1!J5:J65000;"MATUTINO";Hoja1!A5:A65000;">=17/10/2019";Hoja1!A5:A65000;"<=20/10/2019";Hoja1!G5:G65000;"BAJA";Hoja1!E5:E65000;"")

Su resultado es el que necesito cuando no hay fecha en la ecuación, pero es 0 cuando la incluyo. Si se les ocurre otro modo se escucha.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de wordexperto.com
Val: 5.916
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Contar entre fechas excel

Publicado por wordexperto.com (2020 intervenciones) el 30/10/2019 18:08:27
Hola Damyán:
Esto lo puedes hacer, sin necesidad de macros ni fórmulas, con una tabla dinámica (https://www.youtube.com/watch?v=M6q-u_Nf8W8&list=PLF1OL9sNXkSyOJETR9ST8xjwjFj9WrkME), que agrupa y filtra las fechas automáticamente.
Si no puedes, sube el libro, o un ejemplo, y te lo muestro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar entre fechas excel

Publicado por Damyán Tomasini (4 intervenciones) el 30/10/2019 18:26:44
Mi dificultad con la tabla dinámica es que no es una tabla ordenada. Resolver ese problema con VBA no es posible?. O alguna indicación de por dondo puede ir el error (formato de celdas, tipo de dato, etc).

Gracias por la pronta respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar entre fechas excel

Publicado por Damyán Tomasini (4 intervenciones) el 04/11/2019 13:45:17
Estimados, continúo con el problema.

tengo esta fórmula en una celda y me arroja resultado 0. Aún provocando a la función que de algo no cuenta las celdas en ese rango de fechas. Cuál puede ser el error?

=CONTAR.SI.CONJUNTO(A5:A100;">=" & FECHA(2019;10;17); A5:A100;"<=" & FECHA(2019;10;20))

Todas las celdas que contiene fecha, están con formato de fecha.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 3.841
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Contar entre fechas excel

Publicado por Antoni Masana (1295 intervenciones) el 04/11/2019 16:46:08
Para entender el problema de las fechas hay que entender las fechas.

Una fecha se representa internamente como un número entero que representa los días desde el 01/01/1900.
Para Excel hoy 4 de noviembre de 2019 hoy es el dia 43773.
Para hacer un filtro por fecha hay que poner la fecha en este formato y para esto desde un macro hacemos esto:

1
2
3
4
5
6
7
8
Sub Macro()
    Dim h1 As Single, h2 As Single
 
    h1 = DateValue("17/10/2019")
    h2 = DateValue("04/11/2019")
 
    ActiveCell.FormulaR1C1 = "=COUNTIFS(R5C1:R100C1,"">=" & h1 & """,R5C1:R100C1,""<=" & h2 & """)"
End Sub

Y en la ventana de fórmulas vemos esta bonita formula::

1
=CONTAR.SI.CONJUNTO($A$5:$A$100;">=43755";$A$5:$A$100;"<=43773")

Que funciona correctamente.

Saludos.
\\//_

NOTA:

De todas formas la Tablas Dinámicas es una buena alternativa para un montón de soluciones.
Que no esté ordenada no es un problema, el problema seria que no este bien diseñada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar entre fechas excel

Publicado por Damyán Tomasini (4 intervenciones) el 06/11/2019 14:30:54
Muchas gracias, sabía lo de cómo excel maneja las fechas. Pero no sabía que en la formula la debía transformar en número.
Lo pruebo, de nuevo, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar