Crear una tabla que es una subconsulta de otra tabla

Crear una tabla que es una subconsulta de otra tabla

Tengo una tabla grande de datos del personal y me gustaría crear tablas en otras hojas de trabajo con conjuntos de datos filtrados del conjunto de datos principal. Tengo experiencia en escribir macros extensas de VBA y podría lograr lo que quiero con una base de datos y SQL en minutos, pero siento que estoy persiguiendo un hormiguero con un arranque.

Intenté hacerlo con una tabla dinámica, sin embargo, no tengo experiencia con tablas dinámicas y no pude obtener resultados con los que esté satisfecho.

El gran conjunto de datos del personal contiene cosas como la fecha de inicio, el departamento actual, las habilidades de los especialistas, etc. (las cosas normales que esperaría).

Me gustaría crear una tabla dinámica en otras hojas de trabajo que, por ejemplo, muestren a todo el personal que trabaja en el departamento X o a todo el personal que tiene habilidades especializadas en Y. Obviamente, quiero que las tablas de la hoja de trabajo se actualicen cuando se cambian o agregan datos en el conjunto de datos principal.

¿Estoy en lo cierto al pensar que hay una solución simple aquí o debo buscarla usando una base de datos real?

Respuesta1

Me gustaría sugerir un método basado en la función de Excel, que filtra/extrae registros de la tabla fuente a otra.

Tabla fuente:

ingrese la descripción de la imagen aquí


ingrese la descripción de la imagen aquí


Cómo funciona:

  • Si las celdas de criterios están en blanco, la fórmula no devuelve el registro.
  • La fórmula funciona tanto para criterios únicos como múltiples.

Situación 1:

ingrese la descripción de la imagen aquí

Situación 2:

ingrese la descripción de la imagen aquí

  • Fórmula matricial en celda B31:

{=IFERROR(IF(AND(ISBLANK($B$27),ISBLANK($C$27),ISBLANK($D$27),ISBLANK($E$27),ISBLANK($F$27),ISBLANK($G$27),ISBLANK($H$27))," ",INDEX($B$2:$H$21,SMALL(IF(MMULT(($B$2:$H$21=$B$27:$H$27)*1,{1;1;1;1;1;1;1})=COUNTA($B$27:$H$27),MATCH(ROW($B$2:$B$21),ROW($B$2:$B$21)),""),ROWS($A$1:A1)),COLUMNS($A$1:A1))),"")}

  • Termine la fórmula conCtrl+Mayús+Entrary llenar a lo ancho.

  • La característica clave de este ejercicio es MMULTla función.
  • MMULT (Multiplicación de matrices), devuelve el producto matricial de dos matrices.
  • El recuento de columnas de la matriz1 es igual al recuento de filas de la matriz2.
  • El resultado de la matriz contiene la misma cantidad de filas que la matriz1 y la misma cantidad de columnas que la matriz2.

Ajuste las referencias de celda en la fórmula según sea necesario.

información relacionada