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
MaighreadL
New Member

Calacular la diferencia entre una columna si la otra columna contiene un texto determinado

Hola.

Esperaba que pudieras ayudarme con esto.

Tengo una tabla donde me gustaría que la diferencia se calculara en función del número de artículo

MaighreadL_0-1594045625230.png

Así, por ejemplo, el artículo número 22 me gustaría la diferencia del costo unitario descargado entre el número de artículo actual 22 y el anterior vendido para volver a otra columna

He creado una columna calculada con esta fórmula

CalculatedDifference =
VAR PreviousItemNumber_ =
CALCULATE (
MAX ( Sheet1[Item Number] ),
Sheet1[Item Number] < EARLIER (Sheet1[Item Number]),
ALLEXCEPT ( Sheet1, Sheet1[Item Number] )
)
VAR PreviousLandedCost_ =
CALCULATE (
DISTINCT ( Sheet1[Landed Unit Cost] ),
Sheet1[Item Number] = PreviousItemNumber_,
ALLEXCEPT ( Sheet1, Sheet1[Item Number] )
)
VAR CurrentLandedCost_ = Sheet1[Landed Unit Cost]
RETURN
IF (
NOT ISBLANK ( CurrentLandedCost_ ) && NOT ISBLANK ( PreviousLandedCost_ ),
CurrentLandedCost_ - PreviousLandedCost_

Pero está devolviendo un error ; Se proporcionó una tabla de varios valores donde se esperaba un único valor

Aquí hay una copia de la tabla

DatePO NumberItem NumberPropeción de costes unitarios

Miércoles 1 de enero de 202012210
Jueves 2 de enero de 202022212
Viernes 3 Enero 20203112.86
Sábado 4 Enero 20204112.85
Domingo 5 de enero de 20205112.84
Lunes 6 de enero de 20206773.84
Martes 7 de enero de 20207773.89
Miércoles 8 de enero de 20208773.89
Jueves 9 de enero de 20209773.82
Viernes 10 Enero 202010773.75
Sábado 11 de enero de 202011773.75
Domingo 12 de enero de 202012773.75
Lunes 13 de enero de 202013221.2
Martes 14 de enero de 202014221.2
Miércoles 15 de enero de 202015335
Jueves 16 de enero de 202016335.14
Viernes 17 Enero 202017335.12
Sábado 18 enero 202018335.12

¡Gracias!

1 ACCEPTED SOLUTION
harshnathani
Community Champion
Community Champion

hola @MaighreadL ,

Crear una columna calculada

Difference =
VAR a =
    CALCULATE (
        MAX ( 'Table'[Date] ),
        FILTER (
            'Table',
            'Table'[Item Number]
                = EARLIER ( 'Table'[Item Number] )
                && 'Table'[Date]
                    < EARLIER ( 'Table'[Date] )
        )
    )
VAR b =
    CALCULATE (
        MAX ( 'Table'[Unit Cost] ),
        FILTER (
            'Table',
            'Table'[Item Number]
                = EARLIER ( 'Table'[Item Number] )
                && 'Table'[Date] = a
        )
    )
RETURN
    IF (
        b
            <> BLANK (),
        'Table'[Unit Cost] - b
    )

saludos

Harsh Nathani

Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

View solution in original post

3 REPLIES 3
harshnathani
Community Champion
Community Champion

hola @MaighreadL ,

Crear una columna calculada

Difference =
VAR a =
    CALCULATE (
        MAX ( 'Table'[Date] ),
        FILTER (
            'Table',
            'Table'[Item Number]
                = EARLIER ( 'Table'[Item Number] )
                && 'Table'[Date]
                    < EARLIER ( 'Table'[Date] )
        )
    )
VAR b =
    CALCULATE (
        MAX ( 'Table'[Unit Cost] ),
        FILTER (
            'Table',
            'Table'[Item Number]
                = EARLIER ( 'Table'[Item Number] )
                && 'Table'[Date] = a
        )
    )
RETURN
    IF (
        b
            <> BLANK (),
        'Table'[Unit Cost] - b
    )

saludos

Harsh Nathani

Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)

¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!

@MaighreadL Estoy seguro de @harshnathani solución funcionará, no la miré, pero puede tener implicaciones de rendimiento en un conjunto de datos grande. Agregaría una medida usando la siguiente expresión DAX:

Measure = 
VAR __tbl = ALL ( 'Table'[Id], 'Table'[DatePO] )
VAR __prevDate = CALCULATE ( MAX ( 'Table'[DatePO] ), FILTER ( __tbl, 'Table'[DatePO] < MAX ( 'Table'[DatePO] ) ) )
RETURN 
CALCULATE ( SUM ( 'Table'[Amount] ), __tbl, 'Table'[DatePO] = __prevDate)

Me gustaría elogiossi mi solución ayudara.👉Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para dar a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!

Visítenos enhttps://perytus.com, su ventanilla única para proyectos/formación/consulta relacionados con Power BI.



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

@harshnathani Esto es perfecto !!! ¡¡¡Muchas gracias!!!

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.