FUNCIÓN o MACRO que cuenta el número de líneas
Resuelto
Elariana
-
eriiic Mensajes publicados 24581 Fecha de registro Estado Colaborador Última intervención -
eriiic Mensajes publicados 24581 Fecha de registro Estado Colaborador Última intervención -
Hola,
Tengo un problema con mi tabla. He estado buscando desde esta mañana en diferentes foros, pero no encuentro la respuesta a mi problema. Aún no sé si debo usar una macro o si una simple función puede ser suficiente.
Te expongo mi problema.
Me gustaría contar el número de filas de una tabla que cumplan con el criterio de otra columna. Parece simple a primera vista, pero dado que estoy acudiendo a ti es porque se complica, así que voy a intentar ilustrar el problema:
Así que tengo varias columnas
A (identificador) - ... - AH (fecha)
Me gustaría contar el número de filas en A antes de una cierta fecha que se introduce en la columna AH. Donde se complica es que la tabla tiene varias filas combinadas (por ejemplo, las filas 9 y 10 corresponden al mismo identificador). Por lo tanto, por otras razones tengo que dividir las celdas correspondientes a la fecha en AH para hacer funciones SOMMEPROD. Ahora el problema es evitar los duplicados.
En fin, un problema un poco complicado, así que puedo ayudar a esclarecerlo porque no es fácil de exponer.
No dudes en ayudarme y en hacerme preguntas.
Atentamente
Elariana
P.D: trabajo en Open Office Calc, pero si tengo la solución en Excel, ¡también me vale!
Configuración: Windows XP / Firefox 3.6.8
Tengo un problema con mi tabla. He estado buscando desde esta mañana en diferentes foros, pero no encuentro la respuesta a mi problema. Aún no sé si debo usar una macro o si una simple función puede ser suficiente.
Te expongo mi problema.
Me gustaría contar el número de filas de una tabla que cumplan con el criterio de otra columna. Parece simple a primera vista, pero dado que estoy acudiendo a ti es porque se complica, así que voy a intentar ilustrar el problema:
Así que tengo varias columnas
A (identificador) - ... - AH (fecha)
Me gustaría contar el número de filas en A antes de una cierta fecha que se introduce en la columna AH. Donde se complica es que la tabla tiene varias filas combinadas (por ejemplo, las filas 9 y 10 corresponden al mismo identificador). Por lo tanto, por otras razones tengo que dividir las celdas correspondientes a la fecha en AH para hacer funciones SOMMEPROD. Ahora el problema es evitar los duplicados.
En fin, un problema un poco complicado, así que puedo ayudar a esclarecerlo porque no es fácil de exponer.
No dudes en ayudarme y en hacerme preguntas.
Atentamente
Elariana
P.D: trabajo en Open Office Calc, pero si tengo la solución en Excel, ¡también me vale!
Configuración: Windows XP / Firefox 3.6.8
13 respuestas
-
Hola,
Está un poco confuso todo esto.
Si mi interpretación es correcta, hay que contar las filas que cumplen dos condiciones:
la fecha en la columna AH es anterior a una fecha fijada (en $AG$3, por ejemplo)
y la celda correspondiente en la columna A no está vacía.
En esta hipótesis se puede aplicar =SUMAPRODUCTO((AH2:AH100<$AG$3)*(A2:A100<>""))
Cuidado con las celdas combinadas, la celda que contiene un valor no siempre es la que creemos dependiendo de la alineación elegida. -
Esto responde en parte a mi pregunta, porque efectivamente me cuenta el número de líneas, pero el problema viene de las celdas divididas. Me explico:
Para un identificador en la columna A (identificador), puedo tener dos líneas fusionadas pero divididas en AH para el campo fecha, que, por lo tanto, se duplica. Esta fórmula propuesta no tiene en cuenta mis duplicados. -
Hola a todos,
Para un identificador de la columna A (identificador), puedo tener dos líneas fusionadas pero divididas en AH para el campo fecha, que por lo tanto está duplicado. Esta fórmula propuesta no tiene en cuenta mis duplicados.
Así que eso significa que solo te interesa la presencia de una fecha....
=CONTAR.SI(AH2:AH100;"<" & $AG$3)
eric -
No, justamente la presencia de la fecha es interesante únicamente como criterio, porque con esta función propuesta, cuento las filas de la columna AH (campo fecha) y, por lo tanto, cuenta los duplicados.
De hecho, mi tabla se constituye de la siguiente manera:
En la columna A tengo mis identificadores. La mayoría de las veces tengo un identificador para una sola fila, pero algunas filas están fusionadas, por lo que me encuentro con un identificador para dos filas. Sin embargo, la fila no está fusionada en su totalidad, especialmente en lo que respecta a la columna AH (campo fecha), donde las filas han sido divididas para permitir otros cálculos.
¿Todavía me sigues?-
¿Todavía me siguen?
no
Primera respuesta incorrecta porque Esta fórmula propuesta no tiene en cuenta mis duplicados.
Segunda respuesta incorrecta porque por lo tanto, eso cuenta los duplicados.
Sube un archivo de ejemplo (describiendo los resultados deseados) en cijoint.fret, copia aquí el enlace proporcionado. -
Gracias por tu ayuda.
Entonces he simplificado la tabla para resumir la columna AH que ahora se encuentra en J y el identificador que me interesa en A, B o C, a elección, esto no cambia nada. He hecho una tabla general en la parte inferior derecha para entender los diferentes cálculos que estoy llevando a cabo. La línea en rojo corresponde al resultado que me gustaría obtener con una fórmula o macro.
Enlace de openoffice calc: http://www.cijoint.fr/cjlink.php?file=cj201008/cijTx0yIWL.ods
Enlace de excel: http://www.cijoint.fr/cjlink.php?file=cj201008/cij5yAA15M.xls
-
-
Hola,
¿Es normal encontrar 2010 en A6 y 2009 en J6 (28/04/2009)? -
Efectivamente, es un error de mi parte, en A6 debería ser 2009.
Pero más adelante en la tabla (ya que este es un extracto) se pueden encontrar códigos con 2010. -
No, precisamente, deben ser 2, 3 y 4.
De hecho, la línea 7-8 y 9-10 representa dos convenciones para 4 fechas. El resultado 3, 5, 6 no toma en cuenta los duplicados.
Espero ser claro.
Gracias por tu ayuda. -
Al contar los códigos en la columna C: ingresar en M14
=SUMAPROD(($J$6:$J$100<="30/06/2009"*1)*($C$6:$C$100<>""))
Sugerencia para M15:
=SUMAPROD(($I$6:$I$11="sí")*($J$6:$J$11<="30/06/09"*1)*($F$6:$F$11))
Es posible mejorar la tabla resumen: en M13 ingresar 30/06/2009 y poner la celda en formato personalizado mmm aaaa para mostrar junio 2009. Lo mismo para N13, O13, etc.
En las fórmulas reemplazar "30/06/2009"*1 por M$13.
Las fórmulas así son "copiables" horizontalmente. -
Super, la fórmula funciona perfectamente. Muchas gracias.
Ahora, para no parecer tan tonto, ¿podrías darme una explicación de esta fórmula? Especialmente sobre la segunda parte: *($C$6:$C$100<>""))
Con respecto a tu sugerencia para M15, me parece que es la fórmula que puse en la celda, ¿no?
Gracias por tu ayuda, amigo.
EDIT: al final no logro hacerla funcionar en mi tabla, lo intentaré de nuevo y les mantendré informados-
-
-
-
Súper, muchas gracias por tu ayuda, la fórmula funciona esta vez perfectamente.
En cuanto a la estructura de la tabla, en realidad he heredado esta tabla, y por lo tanto se espera que haga tablas intermedias para realizar gráficos. Estoy pensando en el futuro en modificar la estructura o, mejor aún, integrarla en una base de datos.
¡Gracias por todo!
-
-
Hola a todos
¡una pregunta sencilla!
Quisiera, en mi columna A, partir de la última línea (65536) hacia arriba hasta la primera línea anterior que está llena (por ejemplo, línea 1300) y poner en mi macro una variable: for i = 2 to 1300
El objetivo final, partiendo de este ejemplo, es filtrar diferentes valores de la columna A, desde la línea 2 hasta 1300 (aquí). El número de líneas puede variar...
Luego, ¿debo incorporar una nueva variable para hacer un filtrado automático, en función del valor de mi celda?
Gracias. -
Gracias Eric
Tengo una última pregunta, me gustaría que me copiara la información de cada línea (donde i=i+1), pero he intentado con Rows, Range o Cells, ¡y no funciona! ¡La sintaxis no debe ser correcta!
Range(i, 26).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Es para copiar la información de cada línea en un nuevo archivo
Gracias -
Re,
[A1:A1300].AutoFilter Campo:=1, Criterio1:=CeldaActiva
Pero no es necesario activar una celda para usarlo, de hecho, es una pérdida de tiempo en la macro.
Por ejemplo, si tu criterio está en E1 (fila 1 columna 5):
[A1:X1300].AutoFilter Campo:=1, Criterio1:=Celdas(1,5)
eric
editar: has cambiado tu pregunta....
lo veré después de comer. -