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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
luka_zz
Frequent Visitor

Valor de rango y búsqueda

Hola, Le agradecería su ayuda con la siguiente pregunta:

Estoy tratando de escribir la fórmula DAX que devolvería el número en la última columna de la tabla siguiente. Se trata del enésimo producto Ventas por volumen donde enésima posición se define en el rango de valor: por ejemplo, el producto 1 es el 6o en ventas de valor y, como resultado, quiero ventas por volumen del 6o producto clasificadas por volumen (ambas clasificaciones se calculan con RANKX).

luka_zz_0-1602597789971.png

Estoy atascado con tabels virtuales creados por ADDCOLUMNS, pero no puedo ejecutar LOOKUPVALUE a través de ellos.

Gracias de antemano por su apoyo.

Luka

1 ACCEPTED SOLUTION
lbendlin
Super User
Super User

Ok, creo que esta es una de las fórmulas más locas que he escrito. Usar bajo su propio riesgo

VOL Sales based on VAL rank := 
var valr = rankx(all(Products[Product]),CALCULATE(sum(Products[Value Sales])))
var v = ADDCOLUMNS(ALL(Products[Product]),"sales",var p = Products[Product] return calculate(sum(Products[Volume Sales]),all(Products),Products[Product]=p))
var v2 = ADDCOLUMNS(v,"volr",var s=[sales] return CALCULATE(RANK.EQ(s,Products[Volume Sales]),all(Products)))
return CONCATENATEX(filter(v2,[volr]=valr),format([sales],"#"),"")

tratamiento DAXformatter.com:

VOL Sales based on VAL rank =
VAR valr =
    RANKX ( ALL ( Products[Product] ), CALCULATE ( SUM ( Products[Value Sales] ) ) )
VAR v =
    ADDCOLUMNS (
        ALL ( Products[Product] ),
        "sales",
            VAR p = Products[Product]
            RETURN
                CALCULATE (
                    SUM ( Products[Volume Sales] ),
                    ALL ( Products ),
                    Products[Product] = p
                )
    )
VAR v2 =
    ADDCOLUMNS (
        v,
        "volr",
            VAR s = [sales]
            RETURN
                CALCULATE ( RANK.EQ ( s, Products[Volume Sales] ), ALL ( Products ) )
    )
RETURN
    CONCATENATEX ( FILTER ( v2, [volr] = valr ), FORMAT ( [sales], "#" ), "" )

Dejo los Totales como un ejercicio para ti...

lbendlin_0-1602636497268.png

View solution in original post

2 REPLIES 2
lbendlin
Super User
Super User

Ok, creo que esta es una de las fórmulas más locas que he escrito. Usar bajo su propio riesgo

VOL Sales based on VAL rank := 
var valr = rankx(all(Products[Product]),CALCULATE(sum(Products[Value Sales])))
var v = ADDCOLUMNS(ALL(Products[Product]),"sales",var p = Products[Product] return calculate(sum(Products[Volume Sales]),all(Products),Products[Product]=p))
var v2 = ADDCOLUMNS(v,"volr",var s=[sales] return CALCULATE(RANK.EQ(s,Products[Volume Sales]),all(Products)))
return CONCATENATEX(filter(v2,[volr]=valr),format([sales],"#"),"")

tratamiento DAXformatter.com:

VOL Sales based on VAL rank =
VAR valr =
    RANKX ( ALL ( Products[Product] ), CALCULATE ( SUM ( Products[Value Sales] ) ) )
VAR v =
    ADDCOLUMNS (
        ALL ( Products[Product] ),
        "sales",
            VAR p = Products[Product]
            RETURN
                CALCULATE (
                    SUM ( Products[Volume Sales] ),
                    ALL ( Products ),
                    Products[Product] = p
                )
    )
VAR v2 =
    ADDCOLUMNS (
        v,
        "volr",
            VAR s = [sales]
            RETURN
                CALCULATE ( RANK.EQ ( s, Products[Volume Sales] ), ALL ( Products ) )
    )
RETURN
    CONCATENATEX ( FILTER ( v2, [volr] = valr ), FORMAT ( [sales], "#" ), "" )

Dejo los Totales como un ejercicio para ti...

lbendlin_0-1602636497268.png

Seguro que es una locura, pero funciona 😀

Gracias por su apoyo.

Saludos

Luka

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Top Solution Authors
Top Kudoed Authors