March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hola a todos
Tener dolor de cabeza con algo, solo buscar un consejo. Tengo un modelo de datos y hay dos tablas relevantes para este problema. La tabla STUDENTS enumera todos los estudiantes de una escuela, y la tabla YEARS tiene los detalles de los grupos de año en los que se encuentran en cada período del año académico.
STUDENTS tiene StudentID y un montón de otras columnas irrelevantes. Tiene datos que se remontan a 20 años atrás (lo sé, hay un problema de protección/retención de datos que también estoy tratando por separado, pero eso no va a ser una solución rápida)
La tabla YEARS tiene StudentID, YearGroup y AcademicYear. Actualmente tengo un paso en Power Query que lo filtra para que no contenga datos de más de 5 años.
Quiero aplicar ese mismo filtro a la tabla STUDENTS para que no contenga datos de más de 5 años de antigüedad, pero no hay datos de tipo StartDate/EndDate en el feed sin procesar de esa tabla. La única forma que se me ocurre de incluirlo en la tabla de estudiantes es hacer algún tipo de búsqueda en el StudentID en la tabla YEARS y eliminar los que no devuelvan un resultado.
Soy reacio a combinar las tablas, ya que la tabla STUDENTS ya es bastante ancha, y duplicar filas allí para dar cabida a las instancias de grupos de varios años a lo largo de los años se volverá bastante difícil de manejar para mis creadores de informes.
He intentado ordenar la tabla YEARS a la más reciente en la parte superior y hacer una fórmula List.PositionOf entre las tablas en Power Query para obtener el AcademicYear más reciente registrado para ese estudiante, pero es increíblemente lento y no estoy seguro de que sea adecuado para el propósito de la estructura de mis datos, o tal vez simplemente lo estoy haciendo mal.
Si esto fuera Excel, solo haría un tipo de fórmula IF(COUNTIF(YEARS, StudentID=StudentID, AcademicYear>2018)>0,"Don't Filter","Filter") - parece que esto no debería ser tan complicado en Power Query, pero todo lo que intento ralentiza tanto que ...
¿Alguien tiene alguna pista, consejo o solución para este tipo de situación?
Solved! Go to Solution.
En caso de que alguien más se tropiece con esto, resolví esto fusionando las tablas en una nueva tabla, haciendo mi filtrado basado en el año y luego eliminando la columna de años nuevamente y deduplicando la tabla para volver a una línea por estudiante en una nueva tabla ESTUDIANTES que solo contiene estudiantes de los últimos 5 años.
No tengo idea de si esta es la mejor práctica, pero al menos empuja la carga de trabajo a los servidores de Microsoft en lugar de a las máquinas locales y logra el resultado que quería, así que ...
En caso de que alguien más se tropiece con esto, resolví esto fusionando las tablas en una nueva tabla, haciendo mi filtrado basado en el año y luego eliminando la columna de años nuevamente y deduplicando la tabla para volver a una línea por estudiante en una nueva tabla ESTUDIANTES que solo contiene estudiantes de los últimos 5 años.
No tengo idea de si esta es la mejor práctica, pero al menos empuja la carga de trabajo a los servidores de Microsoft en lugar de a las máquinas locales y logra el resultado que quería, así que ...
No puedo ver una opción para cargar un archivo, así que no estoy seguro de qué tan detallado puedo ser, pero aquí va:
Aquí hay un ejemplo de ESTUDIANTES (el mío tiene MUCHAS más columnas allí, de ahí la renuencia a fusionar tablas):
Identificación del estudiante | Nombre | Edad | Género | Cp | Idioma | Origen étnico |
1 | Adán | 6/1/2014 | M | 12345 | Inglés | WBR |
2 | Canasta | 18/2/2017 | M | 23456 | Inglés | WBR |
3 | Charles | 9/3/2009 | M | 34567 | Inglés | BBR |
4 | Margarita | 23/4/2012 | F | 45678 | Inglés | WBR |
5 | Emily | 22/5/2019 | F | 34245 | Español | ABR |
6 | Franco | 18/6/2008 | M | 54634 | Inglés | BAJO |
7 | Georgia | 2/7/2004 | F | 34678 | Inglés | BOT |
A continuación, se muestra un ejemplo de la tabla YEARS:
Identificación del estudiante | Grupo de Año | Año Académico |
1 | Y2 | 2023 |
1 | Y1 | 2022 |
2 | Y3 | 2019 |
2 | Y2 | 2018 |
2 | Y1 | 2017 |
3 | Y4 | 2023 |
3 | Y3 | 2022 |
4 | Y4 | 2017 |
4 | Y3 | 2016 |
4 | Y2 | 2015 |
5 | Y6 | 2020 |
5 | Y5 | 2019 |
5 | Y4 | 2018 |
5 | Y3 | 2017 |
5 | Y2 | 2016 |
6 | Y5 | 2012 |
6 | Y4 | 2011 |
6 | Y3 | 2010 |
6 | Y2 | 2009 |
6 | Y1 | 2008 |
7 | Y3 | 2019 |
7 | Y2 | 2018 |
7 | Y1 | 2017 |
Quiero una columna adicional en la tabla STUDENT incorporada en la consulta de poder que devolverá "SÍ" si hay algún año académico a partir de 2018 para ese estudiante y "NO" si no lo hay:
(He resaltado los años que activarán el rojo "SÍ" en la tabla anterior)
Identificación del estudiante | Resultado deseado |
1 | SÍ |
2 | SÍ |
3 | SÍ |
4 | NO |
5 | SÍ |
6 | NO |
7 | NO |
En lugar de hacernos imaginar lo que desea lograr, publique un dato de muestra utilizable (no una imagen) que cubra su caso de uso y el resultado esperado utilizando esos datos de muestra.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.