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

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Parámetro dinámico - DAX

Buenos días

Estoy tratando de crear un parámetro dinámico que muestre un valor diferente de acuerdo con el valor seleccionado en un filtro (llamado Rol).

El parámetro está configurado como se muestra a continuación.

Comportamiento deseado: Quiero que cuando se seleccione el valor propietario y el rol no sea "DACH Area", entonces la dimensión de la tabla (basada en el parámetro) debe ser "Owner", de lo contrario (role="DACH Area" y selection = "Owner") la dimensión que se muestra en la tabla debe ser Area.

Dimension_Cumulated = {
("Propietario", SI(SELECTEDVALUE(RolesTable[Función]) = "Área DACH", NOMBREDE('Detalles de Opp'[Área]), NOMBREDE('Detalles de Opp'[Propietario de la oportunidad])), 0),
("Clase TCV €", NOMBREDE('Detalles de Opp'[TCV € Clase]), 1),
("Clase Prob.", NOMBREDE('Detalles de Opp'[Clase Prob.]), 2),
("Ant.Etapa", NOMBREDE('Detalles de Opp'[Etapa anterior]), 3),
("Área", NOMBREDE('Detalles de Opp'[Área]), 4)
}
De alguna manera no está funcionando, el área no se muestra cuando el rol il seleccionado.
Cualquiera que pueda
1 ACCEPTED SOLUTION

Gracias DataNinja,

Desafortunadamente, esta solución no está funcionando. Con el rol de área DACH y la selección del propietario del valor, todavía no obtengo el desglose por área.

He encontrado una solución diferente. Véase a continuación:

Agregué la dimensión "Área" al parámetro como número 4.

A continuación, tengo una tabla intermedia entre roles y parámetro que, en función del rol, filtra la segunda tabla que contiene el valor del parámetro (todos los roles tienen valores 0,1,2,3 mientras que "DACH Area" tiene 1,2,3,4.

A continuación, la tabla central se conecta al parámetro a través de una relación multi-uno con dirección de filtro bidireccional, de modo que puedo filtrar el parámetro de la tabla central.

Resultados finales a continuación:

vstefano_0-1742485768370.png

vstefano_1-1742485890951.png

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Hola @vstefano ,

Es probable que el problema se deba a cómo se evalúa SELECTEDVALUE(RolesTable[Role]) dentro de la tabla de parámetros. Si se seleccionan varios valores o no se selecciona ningún valor, SELECTEDVALUE devuelve BLANK(), lo que podría provocar un comportamiento inesperado. Además, es posible que el uso de NAMEOF dentro de una condición IF no funcione según lo esperado porque NAMEOF devuelve una referencia de columna como una cadena, pero la función IF espera expresiones válidas.

Para resolver este problema, intente definir la lógica por separado en una medida y, a continuación, haga referencia a ella en la tabla de parámetros.

SelectedDimension =
VAR RoleSelected = SELECTEDVALUE(RolesTable[Role])
RETURN
    IF(
        RoleSelected = "DACH Area",
        "Area",
        "Owner"
    )

A continuación, modifique la tabla de parámetros para usar esta medida en lugar de incrustar directamente la lógica IF.

Dimension_Cumulated = {
    ("Owner", IF( [SelectedDimension] = "Area", NAMEOF('Opp Details'[Area]), NAMEOF('Opp Details'[Opportunity Owner])), 0),
    ("TCV € Class", NAMEOF('Opp Details'[TCV € Class]), 1),
    ("Prob. Class", NAMEOF('Opp Details'[Prob. Class]), 2),
    ("Prev.Stage", NAMEOF('Opp Details'[Prev.Stage]), 3),
    ("Area", NAMEOF('Opp Details'[Area]), 4)
}

Al separar la lógica en una medida, la selección de roles se evaluará correctamente antes de usarse en la tabla de parámetros, lo que garantiza que se muestre la dimensión correcta en función de la selección del filtro.

Saludos

Gracias DataNinja,

Desafortunadamente, esta solución no está funcionando. Con el rol de área DACH y la selección del propietario del valor, todavía no obtengo el desglose por área.

He encontrado una solución diferente. Véase a continuación:

Agregué la dimensión "Área" al parámetro como número 4.

A continuación, tengo una tabla intermedia entre roles y parámetro que, en función del rol, filtra la segunda tabla que contiene el valor del parámetro (todos los roles tienen valores 0,1,2,3 mientras que "DACH Area" tiene 1,2,3,4.

A continuación, la tabla central se conecta al parámetro a través de una relación multi-uno con dirección de filtro bidireccional, de modo que puedo filtrar el parámetro de la tabla central.

Resultados finales a continuación:

vstefano_0-1742485768370.png

vstefano_1-1742485890951.png

Syndicate_Admin
Administrator
Administrator

Hola @vstefano - ¿puedes acercarte a continuación?

Dynamic_Dimension =
VAR SelectedRole = SELECTEDVALUE(RolesTable[Role])
VAR IsDACH = SelectedRole = "Área DACH"
VAR SelectedParameter = SELECTEDVALUE(ParameterTable[Dimension])

DEVOLUCIÓN
INTERRUPTOR(
SelectedParameter,
"Propietario", IF(IsDACH, SELECTEDVALUE('Detalles de Opp'[Área]), SELECTEDVALUE('Detalles de Opp'[Propietario de la oportunidad])),
"Clase TCV €", SELECTEDVALUE('Detalles de Opp'[Clase TCV €]),
"prob. class", SELECTEDVALUE('Opp details'[prob. class]),
"Prev.Stage", SELECTEDVALUE('Opp Details'[Prev.Stage]),
"area", SELECTEDVALUE('Opp Details'[Area])
)

ya que desea que la dimensión mostrada cambie dinámicamente en función de la selección en el filtro Rol, una medida DAX.

Espero que esto ayude.

Helpful resources

Announcements
PBIApril_Carousel

Power BI Monthly Update - April 2025

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

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

April2025 Carousel

Fabric Community Update - April 2025

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

Top Kudoed Authors