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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
abacc22
New Member

DAX LookupValue basado en SelectedValue y LookupValue en una medida

Hola

Quiero poder mostrar un valor de la tabla 'Points_MaxValue' basado en un valor de fecha seleccionado (esta parte está funcionando, mirando las columnas 'ValidFrom' y 'ValidTo' fecha) y otro valor en una columna diferente 'Puntos' en esa tabla determinada.

En la medida siguiente funcionaría si sólo está buscando un valor basado en la fecha seleccionada. Desafortunadamente, también quiero que busque otro valor. Actualmente, el _Pts VAR se omite totalmente en la columna Calcular.

Points_MaxValue = 

VAR _date =
    SELECTEDVALUE ( Calendar_NoRelation[Date] )
VAR _Pts = DISTINCT(Objects_Points[ObjectPoints_Total])
VAR _vA =
    CALCULATE (
        MAX ( 'Points_MaxValue'[MaxValue] ) ,
        FILTER (
            ( 'Points_MaxValue' ),
            _date >= 'Points_MaxValue'[VALIDFROM]
                && _date <= 'Points_MaxValue'[VALIDTO]
                && _Pts = Points_MaxValue[Points]
        )
    )
RETURN
    IF ( _vA <> BLANK (), _vA, "NULL" )

Enlace al archivo .pbix:

https://1drv.ms/u/s!AliMmiR5bX0C3RYlZF13eUmvUyAc?e=afjLbN

Tablas de este archivo:

Objetos 1:1 Objects_Points

Points_MaxValue (Puntos) 1:n Objects_Points (ObjectPoints_Total)

Points_MaxValue tienen por cantidad de puntos un determinado 'MaxValue' que quiero mostrar por registro (ObjectID) en una tabla. Puesto que cada objeto tiene una cierta cantidad de puntos, debe buscar el valor correcto que pertenece a la cierta cantidad de puntos. Sin embargo, el filtro de fecha seleccionado selecciona el intervalo de fechas en el que se debe basar la búsqueda. Actualmente, el conjunto de datos solo tiene registros ValidFrom 1-7-2020 a 30-6-2021. Debe mostrar NULL antes y después de esas fechas. Más tarde rellenaré los datos de otros años en esta tabla que debería buscar.

Atentamente

Erik

1 ACCEPTED SOLUTION
Anonymous
Not applicable

¡No lo sabía! Lo resolví simplemente poniendo SELECTEDVALUE alrededor de él en la variable. ¡Gracias!

Points_MaxValue = 

VAR _date =
    SELECTEDVALUE ( Calendar_NoRelation[Date] )
VAR _Pts = 
    SELECTEDVALUE( Objects_Points[ObjectPoints_Total] )
VAR _vA =
    CALCULATE (
        MAX ( 'Points_MaxValue'[MaxValue] ) ,
        FILTER (
            ( 'Points_MaxValue' ),
            _date >= 'Points_MaxValue'[VALIDFROM]
                && _date <= 'Points_MaxValue'[VALIDTO]
                && _Pts = Points_MaxValue[Points]
        )
    )
RETURN
    IF ( _vA <> BLANK (), _vA, "NULL" )

View solution in original post

5 REPLIES 5
v-yingjl
Community Support
Community Support

Hola @abacc22 @kekzoj ,

Me alegra saber que el problema está resuelto. Puede aceptar la respuesta adecuada como solución, de esa manera, otros miembros de la comunidad podrían encontrar fácilmente la respuesta cuando tengan los mismos problemas.


Saludos

Yingjie Li

dedelman_clng
Community Champion
Community Champion

Hola @abacc22

He descargado su PBIX, pero parece estar funcionando como se esperaba. Cuando elegí la fecha de 2020-6-9, obtuve NULL para Points_MaxValue.

2020-09-03 12_27_08-TMS_Testfile_LookupSelectedValue [Read-Only] - Power BI Desktop.png

¿Puede proporcionar capturas de pantalla de lo que está viendo y ser muy específico acerca de lo que espera ver?

David

Anonymous
Not applicable

Respondiendo a través de otra cuenta, ya que actualmente estoy trabajando desde casa donde no tengo los datos de inicio de sesión!

En primer lugar, creo que la selección de fecha es un poco confusa, ya que es texto y el formato es AAAA-MM-DD. Puesto que tengo la tabla 'Points_MaxValue' con sólo los datos entre 2020-7-1 hasta 2021-6-30, el filtro 2020-6-9 no mostró ningún valor. Actualmente actualmente actualmente actualmente actualmente actualmente actualmente actualmente actualmente actualmente he actualizado la tabla con datos desde 2017-6-30 hasta 2020-6-30 por lo que ahora podrá ver una diferencia. Marque la diferencia cuando seleccione después de 2020-7-1: los números de cada registro aumentan en 100 euros por registro.

Lo que quiero que haga es dejar que la medida muestre el valor correcto por registros, pero actualmente agrega de alguna manera en lugar de mostrar el valor correcto por registro, ya que no tengo ni idea de cómo poner en la columna 'Objectpoints_Total' como entrada para la medida, mientras uso selectedvalue de 'Peildatum' simultáneamente.

Así que en el ejemplo siguiente selecciono 2021-6-9, y reacciona claramente a eso mostrando valores relacionados con ese período, ya que si seleccionara un valor antes de 2020-7-1 bajaría la salida. Sin embargo, no muestra el valor correcto, ya que no utiliza mi 'ObjectPoints_Total' como segunda variable, ya que no sé dónde ponerlo en la medida.

TMS_Testfile_Endresult.png

Por ejemplo, espero 393,14 en lugar de 493 para el Objeto 11160, 11161, 11185 y 11189, ya que tienen 97 puntos. 97 puntos como se muestra en el cuadro de la derecha corresponde al valor de 393,14.

¿Quizás esto tenga más sentido?

Atentamente

Erik

"No tengo ni idea de cómo poner en la columna 'Objectpoints_Total' como entrada para la medida, mientras uso selectedvalue de 'Peildatum' simultáneamente."

Cuando se coloca una medida en una tabla de la forma en que se encuentra, cada otro valor que no es de medida en esa fila se convierte en su propio segmentador/filtro implícito. Por lo tanto, SELECTEDVALUE(ObjectPoints_Total) debería funcionar igual que si ese valor estuviera en una segmentación de datos. Puede hacer tantas variables SELECTEDVALUE o LOOKUPVALUE dentro del código como necesite. Prueba eso y comprueba si tienes más éxito (no estoy en posición de poder descargar una nueva copia de tu pbix).

David

Anonymous
Not applicable

¡No lo sabía! Lo resolví simplemente poniendo SELECTEDVALUE alrededor de él en la variable. ¡Gracias!

Points_MaxValue = 

VAR _date =
    SELECTEDVALUE ( Calendar_NoRelation[Date] )
VAR _Pts = 
    SELECTEDVALUE( Objects_Points[ObjectPoints_Total] )
VAR _vA =
    CALCULATE (
        MAX ( 'Points_MaxValue'[MaxValue] ) ,
        FILTER (
            ( 'Points_MaxValue' ),
            _date >= 'Points_MaxValue'[VALIDFROM]
                && _date <= 'Points_MaxValue'[VALIDTO]
                && _Pts = Points_MaxValue[Points]
        )
    )
RETURN
    IF ( _vA <> BLANK (), _vA, "NULL" )

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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