Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Anonymous
Not applicable

Valores de búsqueda entre tablas utilizando valores jerárquicos

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:

JobIdGeoidempReq_IdPapelCPTElemCPTLvlCPTKey
J.898P-CGR8967Plomo principalsujeto3Dude-3
J.898P-CGR8967Plomo principalHyd3Hyd-3
J.898P-CHF8762Prod CrewMfg2Mfg-2
J.898P-CHF8762Prod CrewPrd2Prd-2
J.898P-CHF8762Prod Crewsujeto2Dude-2
J.724P-DTC7846Supervisorsujeto4Mec-4
J.724P-DTC7846Supervisorél4He-4
J.724P-DTC7846SupervisorHyd4Hyd-4
J.724P-DTC7846SupervisorPrd4Prd-4
J.724P-DTC7846SupervisorMfg4Mfg-4
J.724P-DWK8751Maint Crewsujeto2Dude-2
J.724P-DWK8751Maint CrewHyd2Hyd-2
J.653P-APT9985Prod LeadPrd3Prd-3
J.653P-APT9985Prod LeadMfg3Mfg-3
J.653P-APT9985Prod LeadHyd3Hyd-3
J.653P-ASR3476Maint Crewél2He-2
J.653P-ASR3476Maint CrewHyd2Hyd-2
J.653P-AWA0475Prod CrewMfg3Mfg-3
J.653P-AWA0475Prod Crewsujeto2Dude-2

Table_Cap:

EmpIdGeoIdReqCPTElemCPTLvlCPTKey
12P-Asujeto4Mec-4
12P-Aél3He-3
12P-AHyd4Hyd-4
12P-APrd4Prd-4
12P-AMfg4Mfg-4
13P-Csujeto3Dude-3
13P-Cél3He-3
13P-CHyd2Hyd-2
13P-CMfg4Mfg-4
14P-Bsujeto2Dude-2
14P-Bél2He-2
14P-BHyd3Hyd-3
14P-BPrd2Prd-2
14P-BMfg2Mfg-2
15P-Aél2He-2
15P-AHyd2Hyd-2
15P-APrd2Prd-2
15P-AMfg2Mfg-2
16P-Csujeto3Dude-3
16P-Cél3He-3
16P-CHyd3Hyd-3
17P-Dsujeto4Mec-4
17P-Dél4He-4
17P-DHyd4Hyd-4
17P-DPrd4Prd-4
17P-DMfg4Mfg-4
18P-Csujeto2Dude-2
18P-Cél2He-2
18P-CHyd1Hyd-1
18P-CPrd1Prd-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_IdEn GeoOut_Geo
GR89671612
17
HF8762 12
14
17
TC784617
WK87511712
13
14
16
PT99851217
SR34761213
1514
16
17
WA04751213
17

Salida deseada de la siguiente manera:

Req_IdEn GeoOut_Geo
GR896712
HF876203
TC784610
WK875114
PT998511
SR347624
WA047512
Recuento distinto (EmpId)45

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

2 REPLIES 2
v-juanli-msft
Community Support
Community Support

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.

Capture1.JPG

¿Qué significa esto:

los casos en que el Table_Cap[CPTLvl] son superiores a Table_Req[CPTLvl

Saludos

Maggie

Anonymous
Not applicable

@v-juanli-msft ;

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))

Out Geo ?DISTINCTCOUNT(Table_Cap[EmpId]) - [En Geo]

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

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.