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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

La función FILTER no aplica los filtros como se desea en una jerarquía

Hola a todos,

Estoy ejecutando un panel de control en la gestión de proyectos de mi empresa y quiero determinar el tamaño del equipo de cada equipo.

Tengo una tabla de equipo, que tiene todos los equipos y una tabla de recursos, que tiene todos los empleados y la información, a qué equipo pertenecen. Dentro de los equipos, tengo una jerarquía.

marcel97_0-1649162080935.png

He descubierto cómo calcular el tamaño de cada equipo en sí, utilicé:

TEAM_SIZE = COUNTX(FILTER(Resources, Resources[TEAM_ID]=Teams[TEAM_ID]), Resources[RESOURCE_ID])

TEAM_IDTEAM_PARENT_IDTEAM_NAMETEAM_SIZENivel1Nivel2Nivel3CAMINO
1 Equipo 111 1
21Equipo 1.1112 1|2
32Equipo 1.1.121231|2|3
42Equipo 1.1.231241|2|4
51Equipo 1.2515 1|5
61Equipo 1.3116 1|6
7 Equipo 217 7
87Equipo 2.1578 7|8
97Equipo 2.2179 7|9
10 Equipo 3110 10
1110Equipo 3.111011 10|11
1211Equipo 3.1.1110111210|11|12
1311Equipo 3.1.2110111311|10|13

Lo que es relevante para mí no es solo el tamaño del equipo en sí, sino el tamaño del equipo, incluidos todos los equipos infantiles. Por ejemplo, el Equipo 1 en sí tiene solo 1 miembro del equipo, pero incluyendo todos los equipos, que tienen el equipo 1 como equipo padre (o padre-padre ), tiene 13 miembros del equipo.

Si utilizo la siguiente fórmula, puedo calcular exactamente el tamaño de este equipo para este escenario:

TEAM_SIZE_WHOLE_HIERARCHY_STRING = SUMX(FILTER(Teams, PATHITEM(Teams[PATH], 1)="1"), Teams[TEAM_SIZE]) = 13
Simplemente resume el tamaño del equipo de todos los equipos, que tienen el ID de equipo del equipo 1 como el primer elemento de ruta, calculando exactamente la información que necesito.
Por supuesto, quiero que esto se calcule para cada equipo individualmente, así que traté de ejecutar la siguiente fórmula:
TEAM_SIZE_WHOLE_HIERARCHY_STRING = SUMX(FILTER(Teams, VALUE(PATHITEM(Teams[PATH], PATHLENGTH(Teams[PATH])))=Value(Teams[TEAM_ID])), Teams[TEAM_SIZE])
Sin embargo, esto devuelve 24 (que es el total de todos los miembros del equipo para todos los equipos). Así que siento que el problema podría ser que las funciones FILTER y PATH no funcionan juntas como yo pretendía.
En última instancia, este es el resultado que necesitaría:
TEAM_IDTEAM_PARENT_IDTEAM_NAMETEAM_SIZENivel1Nivel2Nivel3CAMINOTEAM_SIZE_WHOLE_HIERARCHY_STRING
1 Equipo 111 113
21Equipo 1.1112 1|26
32Equipo 1.1.121231|2|32
42Equipo 1.1.231241|2|43
51Equipo 1.2515 1|55
61Equipo 1.3116 1|61
7 Equipo 217 77
87Equipo 2.1578 7|85
97Equipo 2.2179 7|91
10 Equipo 3110 104
1110Equipo 3.111011 10|113
1211Equipo 3.1.1110111210|11|121
1311Equipo 3.1.2110111311|10|131

¿Alguien sabe lo que estoy haciendo mal o tiene soluciones alternativas?

Gracias de antemano y saludos amables!

Chaleco de cuerda

P.D. también por favor encuentre adjunta la tabla de recursos:

RESOURCE_IDRESOURCE_NAME TEAM_ID
1Miembro del equipo 1 Equipo 11
2Miembro del equipo 1 Equipo 1.12
3Miembro del equipo 1 Equipo 1.1.13
4Miembro del equipo 2 Equipo 1.1.13
5Miembro del equipo 1 Equipo 1.1.24
6Miembro del equipo 2 Equipo 1.1.24
7Miembro del equipo 3 Equipo 1.1.24
8Miembro del equipo 1 Equipo 1.25
9Miembro del equipo 2 Equipo 1.25
10Miembro del equipo 3 Equipo 1.25
11Miembro del equipo 4 Equipo 1.25
12Miembro del equipo 5 Equipo 1.25
13Miembro del equipo 1 Equipo 1.36
14Miembro del equipo 1 Equipo 27
15Miembro del equipo 1 Equipo 2.18
16Miembro del equipo 2 Equipo 2.18
17Miembro del equipo 3 Equipo 2.18
18Miembro del equipo 4 Equipo 2.18
19Miembro del equipo 5 Equipo 2.18
20Miembro del equipo 1 Equipo 2.29
21Miembro del equipo 1 Equipo 310
22Miembro del equipo 1 Equipo 3.111
23Miembro del equipo 1 Equipo 3.1.112
24Miembro del equipo 1 Equipo 3.1.213
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@marcel97,

Pruebe esta medida:

TEAM_SIZE_WHOLE_HIERARCHY_STRING = 
VAR vTeamId = MAX ( Teams[TEAM_ID] )
VAR vTable =
    FILTER ( ALLSELECTED ( Teams ), PATHCONTAINS ( Teams[PATH], vTeamId ) )
VAR vResult =
    SUMX ( vTable, Teams[TEAM_SIZE] )
RETURN
    vResult

DataInsights_0-1649347337701.png

View solution in original post

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

@marcel97,

Pruebe esta medida:

TEAM_SIZE_WHOLE_HIERARCHY_STRING = 
VAR vTeamId = MAX ( Teams[TEAM_ID] )
VAR vTable =
    FILTER ( ALLSELECTED ( Teams ), PATHCONTAINS ( Teams[PATH], vTeamId ) )
VAR vResult =
    SUMX ( vTable, Teams[TEAM_SIZE] )
RETURN
    vResult

DataInsights_0-1649347337701.png

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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