cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Agregar valor String para corregir los niveles de jerarquía con ISINSCOPE

Estimados todos,

Quiero crear una matriz que contenga un nivel de jerarquía dentro de esta matriz. Es una matriz que contiene Proyectos, Subproyectos y Subsubproyectos, luego también quiero agregar un líder de Proyecto en cada uno de los niveles de la matriz de jerarquía, así también los superiores. Para crear esto, hice uso del siguiente artículo sobre la función ISINSCOPE para averiguar en qué nivel se encuentra en la matriz.

https://www.kasperonbi.com/use-isinscope-to-get-the-right-hierarchy-level-in-dax/

Desafortunadamente, no puedo hacer que esto funcione y parece que solo funciona para valores numéricos y no para valores de cadena. Una captura de pantalla de mis datos está a continuación y un enlace de descarga a los archivos también.

MaxSchrijen23_0-1641990479895.pngMaxSchrijen23_1-1641990490425.png

MaxSchrijen23_2-1641990520338.png

https://filedropper.com/d/s/M2ltIzfZsVqEjRYctmQ9ZEucv4YVPv

¿Alguien tiene una solución para esto?

¡Gracias de antemano!

1 ACCEPTED SOLUTION

@MaxSchrijen23 ,

He hecho la siguiente medida:

Leader Value = 
LOOKUPVALUE (
    ProjectData[Leader],
    ProjectData[SubSubProjectId],
        SWITCH (
            TRUE (),
            ISINSCOPE ( ProjectHierarchy[SubSubProjects] ), SELECTEDVALUE ( ProjectHierarchy[SubSubProjectId] ),
            ISINSCOPE ( ProjectHierarchy[SubProject] ),
                CALCULATE (
                    SELECTEDVALUE ( ProjectHierarchy[SubSubProjectId] ),
                    ProjectHierarchy[IsTotal] = 1
                        && ProjectHierarchy[SubProject] = SELECTEDVALUE ( ProjectHierarchy[subProject] )
                ),
            ISINSCOPE ( ProjectHierarchy[Project] ),
                CALCULATE (
                    SELECTEDVALUE ( ProjectHierarchy[SubSubProjectId] ),
                    ProjectHierarchy[IsTotal] = 2
                        && ProjectHierarchy[Project] = SELECTEDVALUE ( ProjectHierarchy[Project] )
                )
        )
)

El resultado es el siguiente:

MFelix_1-1642257627583.png

Ahora puede hacer algunos ajustes para ocultar los valores que están en blanco, pero no cree que sea la mejor opción.

En este caso, debe utilizar una jerarquía padre-hijo. Usando este post he realizado algunos cambios en tu modelo:

El resultado es el siguiente:

MFelix_0-1642257525658.png

Esto pasa a tener la tabla de proyectos en el siguiente formato:

MFelix_2-1642257834997.png

Tengo todas las fórmulas y resultados en la tabla ProjectHierarchy (2). Por favor, dime lo que piensas.

Consulte Adjuntar archivo excel y archivo PBIX.

View solution in original post

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

¿@MaxSchrijen23

El ISINSCOPE funciona sobre cualquier tipo de datos, solo comprueba si la línea de la matriz está dentro de la columna a la que haces referencia por lo que si tienes ISINSCOPE(Subsub-Project) todas las líneas de subsbuprojects son true y todas las demás son false, sin embargo si tienes ISINSCOPE(Project) todas las líneas darán true porque el Project es el nivel principal por lo que un proyecto, el subproyecto y el subproyecto tienen un proyecto para que todas las líneas devuelvan true.

No puedo descargar el archivo que compartiste, ¿puedes compartir las fórmulas que estás utilizando para tus medidas?

Hola Felis, gracias por tu reacción. De hecho, utilicé el IsInScope para obtener el nombre del nivel en el que estoy, así que creo que lo he hecho correctamente. Sin embargo, mi principal problema ahora es obtener los datos de atributos correctos también en el nivel correcto. Por lo tanto, el líder del proyecto superior en el nivel superior y el líder del proyecto subproyecto en el nivel del subproyecto, etc.

Las medidas que utilicé son las siguientes:

Medida =
SI ( ISINSCOPIO ( ProjectHierarchy[SubSubProyectos] ), VERDADERO () ). Para probar si estoy en el nivel SubSubProject.
Medida 2 =
INTERRUPTOR (
VERDADERO,
ISINSCOPIO ( ProjectHierarchy[SubSubProyectos] ), "Subproyecto",
ISINSCOPIO ( ProyectoHierarquía[Subproyecto] ), "Subproyecto",
ISINSCOPIO ( ProyectoHierarquía[Proyecto] ), "Proyecto",
"Otros"
). Para devolver el nivel en el que estoy.
Medida 3 =
DÓNDE subproyectos seleccionados = ISINSCOPIO(ProjectHierarchy[SubSubProyectos])
DÓNDE subproyectos seleccionados = ISINSCOPIO(ProyectoHierarquía[Subproyecto])
DÓNDE subproyectos seleccionados = ISINSCOPIO(ProyectoHierarquía[Proyecto]) y este, sin embargo este no está terminado ya que necesito combinar esto con algún tipo de función que devuelva el líder de proyecto correcto por proyecto. Para ello utilicé el artículo de KasperdeJonge que incluí en el primer post.

Hice un nuevo enlace de descarga a un archivo de Google Drive, ¡espero que esto funcione!

https://drive.google.com/drive/folders/1780SvcwSNIJgTgEwD8_hgD2iB9sqO0z9?usp=sharing

Espero que estas cosas ayuden y que puedas ayudarme :).

¡Gracias de antemano!

@MaxSchrijen23 ,

Mirando sus datos tengo una pregunta, solo tiene un líder de proyecto en el Subsubproyecto, así que para el proyecto 1 que es el líder del proyecto, ya que el Proyecto 1 tiene SubsubProyecto1 y subproyecto2, por lo que PersonA y Persona B respectivamente. Cuál de los dos es el líder del proyecto y por defauilt el líder del subproyecto.

Para el proyecto 1, tengo un subproyecto y 2 subproyectos. El identificador del proyecto 1 es 8, el del subproyecto 1.1 es 6 y el identificador del subproyecto es 1 y 2. Por lo tanto, los líderes del proyecto deben ser respectivamente la Persona H, la Persona F y las Personas A y B. Quiero que se vea así en la matriz, las filas con la cruz roja deberían desaparecer y el líder en el nivel del Proyecto 1 debería ser H y en el nivel del Subproyecto 1 debería ser F.

MaxSchrijen23_0-1642244304787.png

¿Es esto posible con mi estructura de datos actual o también debería cambiar esto?

¡Gracias de antemano!

@MaxSchrijen23 ,

Perdón por la pregunta adicional pero ¿dónde está el ID de los proyectos y subproyectos en el archivo que has enviado solo tienes ID para los subproyectos y por lo tanto el líder correspondiente, o estoy perdiendo la interpretación de tus datos?

No me importa hacer preguntas adicionales, realmente aprecio su ayuda, ¡así que pregunte si algo no está claro! El ID de los proyectos y subproyectos también está en el SubSubProjectId, llegué a esta solución a través de este artículo de Kasper. https://www.kasperonbi.com/use-isinscope-to-get-the-right-hierarchy-level-in-dax/. Donde también crea una columna y la llama SellerId, que es el Id del nivel más bajo de la jerarquía en la que puede estar, y luego agrega filas para el total de cada nivel y le da a cada nivel un Id. Por lo tanto, también agregué una columna llamada SubSubProjectId y agregué las filas adicionales solo para mis totales de proyecto y subproyecto.

@MaxSchrijen23 ,

He hecho la siguiente medida:

Leader Value = 
LOOKUPVALUE (
    ProjectData[Leader],
    ProjectData[SubSubProjectId],
        SWITCH (
            TRUE (),
            ISINSCOPE ( ProjectHierarchy[SubSubProjects] ), SELECTEDVALUE ( ProjectHierarchy[SubSubProjectId] ),
            ISINSCOPE ( ProjectHierarchy[SubProject] ),
                CALCULATE (
                    SELECTEDVALUE ( ProjectHierarchy[SubSubProjectId] ),
                    ProjectHierarchy[IsTotal] = 1
                        && ProjectHierarchy[SubProject] = SELECTEDVALUE ( ProjectHierarchy[subProject] )
                ),
            ISINSCOPE ( ProjectHierarchy[Project] ),
                CALCULATE (
                    SELECTEDVALUE ( ProjectHierarchy[SubSubProjectId] ),
                    ProjectHierarchy[IsTotal] = 2
                        && ProjectHierarchy[Project] = SELECTEDVALUE ( ProjectHierarchy[Project] )
                )
        )
)

El resultado es el siguiente:

MFelix_1-1642257627583.png

Ahora puede hacer algunos ajustes para ocultar los valores que están en blanco, pero no cree que sea la mejor opción.

En este caso, debe utilizar una jerarquía padre-hijo. Usando este post he realizado algunos cambios en tu modelo:

El resultado es el siguiente:

MFelix_0-1642257525658.png

Esto pasa a tener la tabla de proyectos en el siguiente formato:

MFelix_2-1642257834997.png

Tengo todas las fórmulas y resultados en la tabla ProjectHierarchy (2). Por favor, dime lo que piensas.

Consulte Adjuntar archivo excel y archivo PBIX.

Muchas gracias Félix!! ¡Esto es exactamente lo que necesitaba!

Helpful resources

Announcements
Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

May 23 2022 epsiode 5 without aka link.jpg

The Power BI Community Show

Welcome to the Power BI Community Show! Jeroen ter Heerdt talks about the importance of Data Modeling.

Power BI Dev Camp Session 22 with aka link 768x460.jpg

Check it out!

Mark your calendars and join us on Thursday, May 26 at 11a PDT for a great session with Ted Pattison!

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through May 31st!

Top Kudoed Authors