Forum Discussion
Filtrado
Hola expertos,
A través de la siguiente tabla, estoy buscando 3 tablas por DAX.
1- Una tabla que muestra todos los usuarios que tienen 3 certificaciones A, B, C (certificación completa)
2 Una tabla que muestra los usuarios y sus certificaciones y certificaciones perdidas
3- Una tabla que muestra los usuarios que no tienen ninguna certificación.
@koorosh
Aquí están los códigos de tablaEVALUATE FILTER ( VALUES ( Table1[User] ), COUNTROWS ( INTERSECT ( CALCULATETABLE ( VALUES ( Table1[Certification] ) ), { "Cert A", "Cert B", "Cert C" } ) ) = 3 ) EVALUATE ADDCOLUMNS ( CROSSJOIN ( VALUES ( Table1[user] ), SELECTCOLUMNS ( { "Cert A", "Cert B", "Cert C" }, "Cert", [Value] ) ), "Status", VAR _cert = [Cert] RETURN IF ( CALCULATE ( ISEMPTY ( FILTER ( table1, table1[Certification] = _cert ) ) ), "Missing", "Certified" ) ) EVALUATE FILTER ( VALUES ( Table1[User] ), COUNTROWS ( INTERSECT ( CALCULATETABLE ( VALUES ( Table1[Certification] ) ), { "Cert A", "Cert B", "Cert C" } ) ) = 0 )
Verifique el archivo adjunto debajo de mi firma
6 Replies
- Syndicate_Admin
Administrator
Aquí la primera:
Table1 =
FILTER ( SUMMARIZE ( FILTER ( 'Table', Table20[Certification] in {"Cert A", "Cert B", "Cert C"} ), Table[User], "NumberOfDistinctCertifications", DISTINCTCOUNT ( Table[Certification] ) ), [NumberOfDistinctCertifications] = 3 )¿Esto ayuda? 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/ - Syndicate_Admin
Administrator
@koorosh
Aquí están los códigos de tablaEVALUATE FILTER ( VALUES ( Table1[User] ), COUNTROWS ( INTERSECT ( CALCULATETABLE ( VALUES ( Table1[Certification] ) ), { "Cert A", "Cert B", "Cert C" } ) ) = 3 ) EVALUATE ADDCOLUMNS ( CROSSJOIN ( VALUES ( Table1[user] ), SELECTCOLUMNS ( { "Cert A", "Cert B", "Cert C" }, "Cert", [Value] ) ), "Status", VAR _cert = [Cert] RETURN IF ( CALCULATE ( ISEMPTY ( FILTER ( table1, table1[Certification] = _cert ) ) ), "Missing", "Certified" ) ) EVALUATE FILTER ( VALUES ( Table1[User] ), COUNTROWS ( INTERSECT ( CALCULATETABLE ( VALUES ( Table1[Certification] ) ), { "Cert A", "Cert B", "Cert C" } ) ) = 0 )
Verifique el archivo adjunto debajo de mi firma- Syndicate_Admin
Administrator
Gracias Mohammed, si la fuente de datos de Excel tiene más columnas y quiero incluirlas en la T1 y T2, en la que Dax para T1 y T2, ¿debería traerlas? Por ejemplo nombre de la empresa de cada usuario y la fecha de cada certificación.
- Syndicate_Admin
Administrator
@koorosh
Sí, puede hacerlo utilizando estas tablas como filtros en una función CALCULATEDTABLE.
- Syndicate_Admin
Administrator
Aquí la tercera:
Table3 = FILTER ( SUMMARIZE ( 'Table', Table[User], "NumberOfDistinctCertifications", CALCULATE ( DISTINCTCOUNT ( Table[Certification] ), Table[Certification] in {"Cert A", "Cert B", "Cert C"} ), "NumberOfDistinctCourses", CALCULATE ( DISTINCTCOUNT ( Table[Certification] ), Table[Certification] in {"course"} ) ), [NumberOfDistinctCourses] > 0 && [NumberOfDistinctCertifications] < 1 )¿Esto ayuda? 🙂
/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/ - Syndicate_Admin
Administrator