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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
adeeln
Post Patron
Post Patron

DAX, Obtener el valor máximo del valor de la medida para cada categoría

¡Hola a todos!

Tengo problemas para resolver un problema.
[Valor medio del cliente] se mide de hecho en la tabla que se deriva como suma (ventas[Sales_Amount]) / recuento (clientes)

Tengo una tabla de dimensiones de inquilino donde tengo dos columnas (tcode, SalesCategory, Brand Name)
Quiero calcular el máximo [Valor medio del cliente] para cada categoría de ventas.

Annotation.png

He probado una medida usando AllExcept

avg cust value by category = calculate ([Avg Customer Value], AllExcept(Tenant, Tenant[Brand]))


pero está dando resultados erróneos.

Quiero que se repita un valor máximo de [Valor medio del cliente] con cada categoría.

Por ejemplo:

Para la Categoría de Ventas de Belleza hay un máximo de [Valor Medio del Cliente] a 984,56

por lo que este valor debe repetirse con cada categoría de belleza.

Por favor, ayuda gracias.

8 REPLIES 8
az38
Community Champion
Community Champion

@adeeln hola

No estoy seguro de que te entienda correcr, pero parece que necesita la función MAXX() como

avg cust value by category = calculate (MAXX(Tenant, [Avg Customer Value]), AllExcept(Tenant, Tenant[Brand]))


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

Hola @az38 ,

También he intentado de esta manera, aquí están los resultados. Ahora el valor obtiene un valor alto que el valor máximo.

Annotation.png

Sólo para tu información,

Después de leer estos dos blogs, estoy en duda debe haber un poco de rango o algo más

https://www.sqlbi.com/articles/filtering-the-top-3-products-for-each-category-in-power-bi/

https://community.powerbi.com/t5/Desktop/DAX-Find-MAX-value-of-a-Measure/td-p/295456

Estoy cerca de la solución, pero no estoy seguro de cómo obtener este valor..

He sido usado medida de rango que me está dando rango correcto por valor.. Ahora sólo quiero obtener el rango 1 's [Valor de cust promedio].

avg cust value Max Brand rank = 
RANKX (
        CALCULATETABLE (
            VALUES ( 'Tenant'[Brand ] ),
            ALLSELECTED ( 'Tenant'[Brand ] )
        ),
        [Avg Customer Value LC]
    )


Aquí están el resultado de rango preciso con el valor de clasificación 1

Annotation.png

Pero no estoy seguro de cómo puedo repetir el rango 1er valor de cliente AVG con cada categoría.

az38
Community Champion
Community Champion

Hola @adeeln

Veo que Cafes MAXX() devuelve el resultado correcto. ¿Está seguro en su medida [Valor medio del cliente]?

RANKX() opton es peor para su caso desde mi opinión. De todos modos, marque esto para calcular ejecutado por categorías y subcategorías https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

@az38

Sí, Los cafés son correctos, pero la mayoría de los datos están equivocados. No sé por qué está pasando.
y [Valor medio del cliente] es una medida que es igual

Avg Customer Value = SUM (FACT[Sales Amount_Column]) / DISTINCTCOUNT(FACT[CustomersKey_Column])

Lo siento, lo único que no estoy recibiendo cómo puedo usar el rango para repetir los valores para cada categoría.

az38
Community Champion
Community Champion

@adeeln

veo un nuevo problema potencial

DISTINCTCOUNT(FACT[CustomersKey_Column])

puede darle un resultado muy inesperado como un CustomersKey podría existir en muchas marcas y categorías

tratar también de una medida como

Avg Customer Value = SUM (FACT[Sales Amount_Column]) / CALCULATE(DISTINCTCOUNT(FACT[CustomersKey_Column]), AllExcept(Tenant, Tenant[Brand]))

RANKX por categorías para medida se verá como

Rank all rows as Column (Sub Cat) = 
    RANKX(
        FILTER(
                'Table',
                'Table'[Category]=SELECTEDVALUE('Table'[Category])
                ),
        AVERAGE('Table'[My Value])
        )

do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

@az38
He usado este DAX también

Avg Customer Value = SUM (FACT[Sales Amount_Column]) / CALCULATE(DISTINCTCOUNT(FACT[CustomersKey_Column]), AllExcept(Tenant, Tenant[Brand]))

Lo mismo está sucediendo.

Déjame aclararte una cosa. Estoy trabajando en la conexión SSAS en vivo que puede debido a eso?

az38
Community Champion
Community Champion

@adeeln

No creo que el problema esté en SSAS

Recomendaría investigar sus datos de origen y asegurarse de que el cálculo correcto su número distinto


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

@az38

Tengo solución :-D.

La solución estaba oculta en RankX que me compartían arriba. Sólo tienes que cambiar RankX con MAXx.

Max Value by Each Category =
MAXX (
        CALCULATETABLE (
            VALUES ( 'Tenant'[Brand] ),
            ALLSELECTED ( 'Tenant'[Brand] )
        ),
        [Avg Customer Value LC]
    )


Por lo tanto, el problema no estaba en El recuento distinto de clientes.

Muchas gracias por su ayuda para su tiempo, realmente apreciamos.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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