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
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
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.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

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

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors