Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
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.
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 columna | Camino | Profundidad del árbol | IntermedioOrEnd | Padre | Valor | Nivel1 | Nivel2 | Nivel3 | Nivel4 | Nivel5 | Nivel6 | Nivel7 |
1 | 1493921|1323246 | 2 | Intermedio | 1493921 | 1493921 | 1323246 | ||||||
2 | 1493921|1323246|2109161 | 3 | Fin | 1323246 | 5 | 1493921 | 1323246 | 2109161 | ||||
3 | 1493921|1323246|59154 | 3 | Fin | 1323246 | 7 | 1493921 | 1323246 | 59154 | ||||
4 | 1493921|1323246|1571556 | 3 | Fin | 1323246 | 2 | 1493921 | 1323246 | 1571556 | ||||
5 | 1493921|1323246|809214 | 3 | Intermedio | 1323246 | 1493921 | 1323246 | 809214 | |||||
6 | 1493921|1323246|217786 | 3 | Intermedio | 1323246 | 1493921 | 1323246 | 217786 | |||||
7 | 1493921|1323246|809214|1571556 | 4 | Fin | 809214 | 7 | 1493921 | 1323246 | 809214 | 1571556 | |||
8 | 1493921|1323246|217786|59154 | 4 | Fin | 217786 | 9 | 1493921 | 1323246 | 217786 | 59154 | |||
9 | 1493921|1323246|809214|59154 | 4 | Fin | 809214 | 4 | 1493921 | 1323246 | 809214 | 59154 | |||
10 | 1493921|1323246|809214|2109161 | 4 | Fin | 809214 | 5 | 1493921 | 1323246 | 809214 | 2109161 | |||
11 | 1493921|1323246|809214|1796891 | 4 | Fin | 809214 | 2 | 1493921 | 1323246 | 809214 | 1796891 | |||
12 | 1493921|1323246|217786|1141948 | 4 | Intermedio | 217786 | 1493921 | 1323246 | 217786 | 1141948 | ||||
13 | 1493921|1323246|217786|1141948|59154 | 5 | Fin | 1141948 | 7 | 1493921 | 1323246 | 217786 | 1141948 | 59154 | ||
14 | 1493921|1323246|217786|1141948|1796891 | 5 | Fin | 1141948 | 5 | 1493921 | 1323246 | 217786 | 1141948 | 1796891 | ||
15 | 1493921|1323246|217786|1141948|1278925 | 5 | Intermedio | 1141948 | 1493921 | 1323246 | 217786 | 1141948 | 1278925 | |||
16 | 1493921|1323246|217786|1141948|715031 | 5 | Intermedio | 1141948 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | |||
17 | 1493921|1323246|217786|1141948|715031|289774 | 6 | Fin | 715031 | 9 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 289774 | |
18 | 1493921|1323246|217786|1141948|715031|59154 | 6 | Fin | 715031 | 4 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 59154 | |
19 | 1493921|1323246|217786|1141948|715031|1770114 | 6 | Fin | 715031 | 8 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 1770114 | |
20 | 1493921|1323246|217786|1141948|715031|2109161 | 6 | Fin | 715031 | 5 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 2109161 | |
21 | 1493921|1323246|217786|1141948|715031|736075 | 6 | Intermedio | 715031 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 736075 | ||
22 | 1493921|1323246|217786|1141948|715031|736075|1796891 | 7 | Fin | 736075 | 7 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 736075 | 1796891 |
23 | 1493921|1323246|217786|1141948|715031|736075|59154 | 7 | Fin | 736075 | 5 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 736075 | 59154 |
24 | 1493921|1323246|217786|1141948|715031|736075|788069 | 7 | Fin | 736075 | 7 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 736075 | 788069 |
25 | 1493921|1323246|217786|1141948|715031|736075|2109161 | 7 | Fin | 736075 | 2 | 1493921 | 1323246 | 217786 | 1141948 | 715031 | 736075 | 2109161 |
@Ale Déjame ver qué puedo hacer. Podría ser mejor hacerlo en Power Query. ¿Es esa una opción para ti?
¡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?
@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
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.
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Ask questions in Eventhouse and KQL, Eventstream, and Reflex.