Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola PBI Comunidad;
Necesito su valiosa ayuda para crear 2 medidas para calcular el número de empleados que coinciden con los criterios de los requisitos, estas medidas se basan en 2 tablas conectadas mediante una tabla de búsqueda, me gustaría describir los casos usando el ejemplo de maqueta de la siguiente manera:
Tabla de búsqueda:
CPTKey (CPTKey) CPTElem CPTLvl
Table_Req:
JobId | Geoidemp | Req_Id | Papel | CPTElem | CPTLvl | CPTKey |
J.898 | P-C | GR8967 | Plomo principal | sujeto | 3 | Dude-3 |
J.898 | P-C | GR8967 | Plomo principal | Hyd | 3 | Hyd-3 |
J.898 | P-C | HF8762 | Prod Crew | Mfg | 2 | Mfg-2 |
J.898 | P-C | HF8762 | Prod Crew | Prd | 2 | Prd-2 |
J.898 | P-C | HF8762 | Prod Crew | sujeto | 2 | Dude-2 |
J.724 | P-D | TC7846 | Supervisor | sujeto | 4 | Mec-4 |
J.724 | P-D | TC7846 | Supervisor | él | 4 | He-4 |
J.724 | P-D | TC7846 | Supervisor | Hyd | 4 | Hyd-4 |
J.724 | P-D | TC7846 | Supervisor | Prd | 4 | Prd-4 |
J.724 | P-D | TC7846 | Supervisor | Mfg | 4 | Mfg-4 |
J.724 | P-D | WK8751 | Maint Crew | sujeto | 2 | Dude-2 |
J.724 | P-D | WK8751 | Maint Crew | Hyd | 2 | Hyd-2 |
J.653 | P-A | PT9985 | Prod Lead | Prd | 3 | Prd-3 |
J.653 | P-A | PT9985 | Prod Lead | Mfg | 3 | Mfg-3 |
J.653 | P-A | PT9985 | Prod Lead | Hyd | 3 | Hyd-3 |
J.653 | P-A | SR3476 | Maint Crew | él | 2 | He-2 |
J.653 | P-A | SR3476 | Maint Crew | Hyd | 2 | Hyd-2 |
J.653 | P-A | WA0475 | Prod Crew | Mfg | 3 | Mfg-3 |
J.653 | P-A | WA0475 | Prod Crew | sujeto | 2 | Dude-2 |
Table_Cap:
EmpId | GeoIdReq | CPTElem | CPTLvl | CPTKey |
12 | P-A | sujeto | 4 | Mec-4 |
12 | P-A | él | 3 | He-3 |
12 | P-A | Hyd | 4 | Hyd-4 |
12 | P-A | Prd | 4 | Prd-4 |
12 | P-A | Mfg | 4 | Mfg-4 |
13 | P-C | sujeto | 3 | Dude-3 |
13 | P-C | él | 3 | He-3 |
13 | P-C | Hyd | 2 | Hyd-2 |
13 | P-C | Mfg | 4 | Mfg-4 |
14 | P-B | sujeto | 2 | Dude-2 |
14 | P-B | él | 2 | He-2 |
14 | P-B | Hyd | 3 | Hyd-3 |
14 | P-B | Prd | 2 | Prd-2 |
14 | P-B | Mfg | 2 | Mfg-2 |
15 | P-A | él | 2 | He-2 |
15 | P-A | Hyd | 2 | Hyd-2 |
15 | P-A | Prd | 2 | Prd-2 |
15 | P-A | Mfg | 2 | Mfg-2 |
16 | P-C | sujeto | 3 | Dude-3 |
16 | P-C | él | 3 | He-3 |
16 | P-C | Hyd | 3 | Hyd-3 |
17 | P-D | sujeto | 4 | Mec-4 |
17 | P-D | él | 4 | He-4 |
17 | P-D | Hyd | 4 | Hyd-4 |
17 | P-D | Prd | 4 | Prd-4 |
17 | P-D | Mfg | 4 | Mfg-4 |
18 | P-C | sujeto | 2 | Dude-2 |
18 | P-C | él | 2 | He-2 |
18 | P-C | Hyd | 1 | Hyd-1 |
18 | P-C | Prd | 1 | Prd-1 |
Las medidas necesarias deben ser capaces de encontrar el EmpId en Table_Cap que coincida con el CPTElem + CPTLvl (requerido o superior)
Medida 1 (InGeo) -> Coincidencias que tienen GeoIdEmp - GeoEmpReq
Medida 2 (OutGeo -> Coincidencias que tienen GeoIdEmp <> GeoEmpReq
La lógica de iteración necesaria para obtener coincidencias es la siguiente que muestra EmpId:
Req_Id | En Geo | Out_Geo |
GR8967 | 16 | 12 |
17 | ||
HF8762 | 12 | |
14 | ||
17 | ||
TC7846 | 17 | |
WK8751 | 17 | 12 |
13 | ||
14 | ||
16 | ||
PT9985 | 12 | 17 |
SR3476 | 12 | 13 |
15 | 14 | |
16 | ||
17 | ||
WA0475 | 12 | 13 |
17 |
Salida deseada de la siguiente manera:
Req_Id | En Geo | Out_Geo |
GR8967 | 1 | 2 |
HF8762 | 0 | 3 |
TC7846 | 1 | 0 |
WK8751 | 1 | 4 |
PT9985 | 1 | 1 |
SR3476 | 2 | 4 |
WA0475 | 1 | 2 |
Recuento distinto (EmpId) | 4 | 5 |
Me las arreglé para crear una medida contando las coincidencias exactas, pero no considera los casos donde el Table_Cap[CPTLvl] son más altos que Table_Req[CPTLvl]
Espero haber proporcionado toda la información que necesitará para proporcionarme el apoyo.
Gracias en Advace;
WGAP75
Hola @WGAP75
Tal como se ha probado, para [Req_id]-GR8967, el identificador correspondiente para [In Geo] tiene dos :13,16, por lo que la salida final puesta es sólo 16.
¿Qué significa esto:
los casos en que el Table_Cap[CPTLvl] son superiores a Table_Req[CPTLvl
Saludos
Maggie
Gracias por su respuesta y apoyo !!!
En cuanto al valor mostrado Req_Id GR1967, solo 16 se muestra en los resultados de "Iteración creada manualmente" ya que CPTLvl es un parámetro clave en el cálculo, la idea es obtener el EmpId que coincida con el mismo Table_Cap + de CPTElem[CPTLvl] á> Table_Cap[CPTLvl]. En este caso, EmpId "13" tiene CPTElem Mec 3 pero Hyd 2 y Hyd 3 de Table_Req, esto es lo que quise decir con "casos en los que los Table_Cap[CPTLvl] son más altos que Table_Req[CPTLvl]"
Mi enfoque anterior era el siguiente, pero NO ESTÁ considerando la condición en la que Table_Cap[CPTLvl] > Table_Req[CPTLvl]:
1) Creé la medida:
EmpCheck á IF(CALCULATE(COUNTROWS(Table_Req), FILTER(Table_Req, Table_Req[CPTKey] en DISTINCT(Table_Cap[CPTKey]))) ? COUNTROWS(Table_Cap), 1, 0)
2) Crear medidas adicionales para obtener En Geo y Out Geo
InGeoXP ?IF(SELECTEDVALUE(Table_Cap[GeoId]) á SELECTEDVALUE(Table_Req[GeoId]), 1, 0)
En Geo ?CALCULATE(DISTINCTCOUNT(Table_Cap[EmpId]), FILTER(Table_Cap, [InGeoXP] á 1))
Probablemente no estoy lejos de la solución final (pherhaps sí ???) pero he estado atascado por un tiempo.
Espero que aclare sus preguntas.
Saludos;
WGAP75
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |