Excel: Sacar listado de datos en base a criterios

B

Necesito ayuda con excel, a ver si alguien puede ayudarme :blush:

Tengo los siguientes datos con miles de filas:

En otra hoja quiero poner el número de mes y de empleado como criterio/filtro y tener debajo todos los valores que existan (pongo uno de ejemplo), tal que así:

Ahora bien, ¿Cómo podría hacer para tener la lista que comento?

Y por otro lado, ¿Sería necesario añadir la fórmula en cada celda o de algún modo se puede hacer que se añadan hacia abajo tantos valores como hayan? (o hacer que una fórmula se aplique hacia abajo hasta el infinito).

Llevo un buen rato pensando el modo y estoy ya tirando humo..
Muchas gracias!

LiKaN

Con una macro seguro que iría finísimo, pero así a bote pronto creo que con la función buscarv puedes sacar los datos.

1 respuesta
B

#2 he usado buscarv para el ejemplo pero sólo me saca el primer valor que encuentra y he pensado que algún modo más fácil debe haber.

Macros por desgracia no he aprendido a hacer :(

javifisher

Selecciona la tabla completa, Insertar Tabla Dinámina, y añades los campos que quieres en las filas o columnas

2 respuestas
B

#4 no sé muy bien cómo hacer lo que dices. No sé el número de valores que puede dar cada código o mes, pueden ser 5 o quizá 100

1 respuesta
jarobado

#5 Haz lo que te dice #4 y te insertas en la tabla dinámica unos segmentadores de datos (slicers) para filtrar (quedan mejor que los filtros).

Si la base de datos te va cambiando de tamaño, puedes ampliar el origen de datos siempre que quieras (o hacer que el origen sea la tabla y que esta se expanda automáticamente cuando insertes nuevos datos).

2 respuestas
javifisher

Te debería salir así:

2 respuestas
B

#6 #7 no consigo aclararme, pero gracias de todos modos

1 respuesta
AikonCWD

#8 sube el excel y te lo hacemos.

1 respuesta
B

#6 #7 #9 he visto la luz!
Al final lo he hecho a mi modo y (como siempre) me he enredado y al final he ido más allá xD

Lo he ligado con calendarios por sede (separados por época y filtrado por mes) para que sólo aparezcan las personas que tienen +20min de retraso mensual y/o +10min de retraso algún día.

Ahora será volcar al Excel en la primera hoja la base de datos nacional de fichajes y en otra hoja directamente saldrá la info de retrasos diferenciados por ciudades.

Ah y también avisa si alguien no ha fichado.
Lo dicho, quería hacer 10 y acabo haciendo 100 xD

Edit: Mi problema principal estaba en que usando BUSCARV para obtener el listado de fichajes del mes de un individuo, me salía solo el primero que encontraba y no todos. Al final lo he solucionado creando un código "empleado"&"id_fichaje_mes"&"mes" y usar BUSCARV para encontrar ese código en vez del empleado, así encontraba todos.

laZAr0

https://www.mediavida.com/foro/dev/dudas-y-consultas-sobre-excel-620269

Me acabo de acordar que antaño abrí este hilo.

☹️☹️

1 respuesta
B

#11 para tema Excel es mejor el foro de desarrollo y diseño o este? Duda seria xD

Me uno y así si salen nuevas conversaciones me entero y aprendo

1 respuesta
HeXaN

Dios, con lo fácil que sería eso en Python xD

1 respuesta
laZAr0

#12 Pues la verdad es que ni idea. Yo creo que también lo abrí en software, pero al final, decidimos abrirlo allí por recomendación de algunos usuarios, porque allí hay más programadores, muchos de los cuales también saben programar en Excel.

B

#13 soy autodidacta de Excel y estudié ADE.
Os envidio mucho a los que habéis estudiado informática/programación pero no llego a tanto xD

3 meses después
Vandalus

Estoy buscando como a partir de la fecha de hoy 20/12/2019 hacer una lista con todos los días hasta digamos el 20/1/2020 pero automáticamente. Poniendo fecha hoy y la fecha del mes que viene y me rellene en vertical todos los días.

saludos

2 respuestas
AikonCWD

#16 A muy malas, escribe los 2 primeros días en columna, selecciona ambos y arrastra hacia abajo hasta la fecha deseada.

Si no lo quieres hacer a mano, deberás usar una macro, creo.

1 respuesta
NeV3rKilL

Eso se hace con tablas dinámicas.
edit:Shit es un hilo zombie

#16 En formato date, la unidad equivale a un día.
O sea 20/10/2019 +1 es el 21/10/2019 Así sumas días para cada fila. Luego solo te falta saber cuando parar. Para esto dos maneras:
Puedes hacerlo con macro y VBA (es sencillito), o con una celda intermedia que te diga cuantos días has de bajar y llenar la columna entera hasta que row() iguale el número de celdas final.

Lo más sencillo es lo que te puso aikon pero tienes que arrastrar hacia abajo.

Puedes mirarte también las funciones Offset() y Row(). Que son muy útiles para estas cosas.

1 respuesta
Vandalus

#17 #18 Gracias

Al final he puesto el dia de hoy 20/12/2019 , he ido a formulas (después de poner las celdas en formato fecha) y en formulas fecha y hora, he puesto la de DIAS.
Dia inicio 20/12/2019, dia fin 20/1/2020, arrastro columna hacia abajo hasta que llego al ultimo día deseado final.

Usuarios habituales