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

Comprobar si un padre tiene hijos en Jerarquía

Mi problema es el siguiente: Tengo un conjunto de datos con una jerarquía de 7 niveles, y una columna para indicar si ese elemento es un "intermedio" o "fin" de la jerarquía. Si es intermedio, este artículo DEBE tener un hijo. Sin embargo, descubrí que en mis datos reales, hay algunos casos en los que esto no sucede. Como puede ver en la imagen de abajo, el elemento en rojo (columna ID 15) es un intermedio pero no tiene hijo. Eso significa que los datos están llegando mal y quiero señalarlos.

Screenshot Hierarchy.PNG

Lo que necesito es exactamente una función que marque cada caso en el que eso suceda. Si la fila es intermedia y no tiene hijos, marque como "Error". Idealmente, esto debería venir como una columna adicional, pero si no es posible, una medida también podría estar bien.

¿Cómo puedo resolver eso? (los datos reales no están ordenados así, solo los ordené en Excel para que sean más fáciles de entender).

ID de columnaCaminoProfundidad del árbolIntermedioOrEndPadreValorNivel1Nivel2Nivel3Nivel4Nivel5Nivel6Nivel7
11493921|13232462Intermedio1493921 14939211323246
21493921|1323246|21091613Fin13232465149392113232462109161
31493921|1323246|591543Fin132324671493921132324659154
41493921|1323246|15715563Fin13232462149392113232461571556
51493921|1323246|8092143Intermedio1323246 14939211323246809214
61493921|1323246|2177863Intermedio1323246 14939211323246217786
71493921|1323246|809214|15715564Fin8092147149392113232468092141571556
81493921|1323246|217786|591544Fin21778691493921132324621778659154
91493921|1323246|809214|591544Fin80921441493921132324680921459154
101493921|1323246|809214|21091614Fin8092145149392113232468092142109161
111493921|1323246|809214|17968914Fin8092142149392113232468092141796891
121493921|1323246|217786|11419484Intermedio217786 149392113232462177861141948
131493921|1323246|217786|1141948|591545Fin1141948714939211323246217786114194859154
141493921|1323246|217786|1141948|17968915Fin114194851493921132324621778611419481796891
151493921|1323246|217786|1141948|12789255Intermedio1141948 1493921132324621778611419481278925
161493921|1323246|217786|1141948|7150315Intermedio1141948 149392113232462177861141948715031
171493921|1323246|217786|1141948|715031|2897746Fin7150319149392113232462177861141948715031289774
181493921|1323246|217786|1141948|715031|591546Fin715031414939211323246217786114194871503159154
191493921|1323246|217786|1141948|715031|17701146Fin71503181493921132324621778611419487150311770114
201493921|1323246|217786|1141948|715031|21091616Fin71503151493921132324621778611419487150312109161
211493921|1323246|217786|1141948|715031|7360756Intermedio715031 149392113232462177861141948715031736075
221493921|1323246|217786|1141948|715031|736075|17968917Fin73607571493921132324621778611419487150317360751796891
231493921|1323246|217786|1141948|715031|736075|591547Fin736075514939211323246217786114194871503173607559154
241493921|1323246|217786|1141948|715031|736075|7880697Fin7360757149392113232462177861141948715031736075788069
251493921|1323246|217786|1141948|715031|736075|21091617Fin73607521493921132324621778611419487150317360752109161
6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

@Ale Déjame ver qué puedo hacer. Podría ser mejor hacerlo en Power Query. ¿Es esa una opción para ti?

Syndicate_Admin
Administrator
Administrator

¡Gracias, @Greg_Deckler !

Funcionó como un encanto para un pequeño conjunto de datos. El problema en este momento es porque tengo 640k filas y la función no se puede realizar. Se queda atascado en "Trabajando en ello".

¿Recomendaría algún otro enfoque? ¿Hay alguna alternativa para CONTAINSSTRING() que pueda tener un mejor rendimiento?

Syndicate_Admin
Administrator
Administrator

@Ale Prueba esto:

Column = 
    VAR __Path = [Path]
    VAR __Count = COUNTROWS(FILTER('Table', CONTAINSSTRING([Path], __Path)))
    VAR __Result = IF([IntermediateOrEnd] = "Intermediate" && __Count = 1, "Error", BLANK())
RETURN
    __Result
Syndicate_Admin
Administrator
Administrator

Hola @Greg_Deckler , gracias por la respuesta. Estoy tratando de hacer eso con la medida que mencionaste, pero eso no está funcionando correctamente. Solo devuelve valores de ruta. Además, no tengo ninguna fecha en mi conjunto de datos.

Syndicate_Admin
Administrator
Administrator

@Greg_Deckler , ese informe es un delito 🙂

Syndicate_Admin
Administrator
Administrator

@Ale Esta medida fue diseñada para algo similar:

Sin hijos - Comunidad de Microsoft Fabric

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

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.

Top Solution Authors
Top Kudoed Authors