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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Zyg_D
Continued Contributor
Continued Contributor

Indique explícitamente qué columna a MAX

En el siguiente modelo, la fórmula para la columna calculada "Name_max_value" funciona bien.

PBI_MAX_related.JPG

Name_max_value = 
CALCULATE ( MAX ( Table1[Name] )
          , ALL ( Table1 )
          , TREATAS( CALCULATETABLE ( VALUES ( Table2[id] )
                                    , ALLEXCEPT ( Table2, Table2[Parent] ) 
                                    )
                    , Table1[Id] 
                    ) 
          )

Pero en ninguna parte de la fórmula le digo que mire Table1[Value] para encontrar el valor máximo. Es probablemente un comportamiento predeterminado, ya que es la única columna con valores numéricos. En la vida real hay más columnas con valores numéricos, así que temo que la fórmula falle. ¿Puedo reescribir esta fórmula para que diga explícitamente que quiero usar calculate MAX en la columna Table1[Value] (mientras devuelvo el [Name])?

6 REPLIES 6
Zyg_D
Continued Contributor
Continued Contributor

Hasta ahora esta es la única fórmula que funciona:

Result = 
var _parent = [Parent]
var _maxvalue = 
CALCULATE(
    MAX(Table1[Value]),
    ALLEXCEPT(Table2,Table2[Parent])
)
return
CONCATENATEX(
    CALCULATETABLE(
        FILTER(
            ALL(Table1),
            Table1[Value] = _maxvalue &&
            RELATED(Table2[Parent]) = _parent
        )
    ),
    [Name],","
)

v-kelly-msft
Community Support
Community Support

Hola @Zyg_D ,

Primero puede obtener el valor primario en table1 usando la siguiente expresión dax:

Parent = LOOKUPVALUE('Table 2'[Parent],'Table 2'[ID ],'Table 1'[ID ],blank())

A continuación, cree una medida como se indica a continuación:

Name_max_value = 
var _maxvalue=MAXX(FILTER(ALL('Table 1'),'Table 1'[Parent]=MAX('Table 1'[Parent])),'Table 1'[Value])Return
CALCULATE(MAX('Table 1'[name ]),FILTER(ALL('Table 1'),'Table 1'[Value]=_maxvalue))

Finalmente verá:

Annotation 2020-05-25 154833.png

Para el archivo .pbix relacionado, haga clic aquí.

Saludos
Kelly
¿Respondí a tu pregunta? ¡Marca mi puesto como solución!
Zyg_D
Continued Contributor
Continued Contributor


@v-kelly-msft escribió:

Hola @Zyg_D ,

Primero puede obtener el valor primario en table1 usando la siguiente expresión dax:

Parent = LOOKUPVALUE('Table 2'[Parent],'Table 2'[ID ],'Table 1'[ID ],blank())

A continuación, cree una medida como se indica a continuación:

Name_max_value = 
var _maxvalue=MAXX(FILTER(ALL('Table 1'),'Table 1'[Parent]=MAX('Table 1'[Parent])),'Table 1'[Value])Return
CALCULATE(MAX('Table 1'[name ]),FILTER(ALL('Table 1'),'Table 1'[Value]=_maxvalue))

Finalmente verá:

Annotation 2020-05-25 154833.png

Para el archivo .pbix relacionado, haga clic aquí.


Lo siento, pero su fórmula falla si hay los mismos valores máximos en diferentes padres.

amitchandak
Super User
Super User

@Zyg_D, no lo entendí. ¿Necesita una columna en la Tabla B.

Valor de máximo de la Tabla 1.

Las formas de valorar el nombre máximo de A es. Crear un rango; Rango Desc. Nombre dentro de ID y Rango 1 es su filtro

Para el rango Refiera estos links
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns --refiérase a esto
https://radacad.com/how-to-use-rankx-in-dax-part-3-of-3-the-finale
https://community.powerbi.com/t5/Community-Blog/Dynamic-TopN-made-easy-with-What-If-Parameter/ba-p/3...

mahoneypat
Employee
Employee

La fórmula hace referencia a la columna Table1[Name] y obtiene el máximo de la misma. Puede hacer Max/Min en columnas de texto. Si desea la columna de valor, puede usarla en lugar de Name. Mientras su fórmula funciona, ¿consideró hacer una relación entre las tablas de ID?

Si esto funciona para usted, por favor márquelo como solución. Los felicitaciones también son apreciados. Por favor, avísame si no.

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Zyg_D
Continued Contributor
Continued Contributor


@mahoneypat escribió:

La fórmula hace referencia a la columna Table1[Name] y obtiene el máximo de la misma. Puede hacer Max/Min en columnas de texto. Si desea la columna de valor, puede usarla en lugar de Name. Mientras su fórmula funciona, ¿consideró hacer una relación entre las tablas de ID?

Si esto funciona para usted, por favor márquelo como solución. Los felicitaciones también son apreciados. Por favor, avísame si no.

saludos

palmadita


¡Gracias! Debido a su cmment me di cuenta de que la fórmula no mira en [Valor] en absoluto.

La relación existe, pero no se me ocurrió ninguna otra solución. Si utilizo MAX(Table1[Value]), devuelve number. Pero no quiero número, como he dicho, debe devolver [Nombre], pero la comparación debe hacerse en [Valor]. ¿Es posible hacerlo?

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors