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
jburklund
Helper III
Helper III

Resolver el monto de un cheque de pago dado un cheque de pago YTD

Estoy tratando de escribir una medida para resolver el monto de un cheque de pago dado un monto de cheque de pago YTD y la fecha del cheque de pago. Tenga en cuenta que esto se ejecutará en una base de datos muy grande, así que estoy tratando de evitar el uso de columnas calculadas.

Aquí está una tabla de datos de muestra:

paycheckData.png

La siguiente medida devuelve el error" "La expresión hace referencia a varias columnas. No se pueden convertir varias columnas en un valor escalar." Sé que el filtro devuelve una tabla y no un valor escalar, pero no puedo averiguar cómo obtener un para calcular como un solo valor.

Importe del cheque de pago Calc ?
var ytdPayroll á sum(Payroll[ytd_wages_regular_overtime])
var a - CALCULATE(
MAX('Nómina'[ytd_wages_regular_overtime]),
FILTER(ALL(Nómina),
FILTER (Nómina, 'Nómina'[employee_pii_key] á EARLIER('Payroll'[employee_pii_key]) && 'Payroll'[last_check_date] < EARLIER('Payroll'[last_check_date]))))
devolución
ytdPayroll - un
4 REPLIES 4
amitchandak
Super User
Super User

@jburklund, con la ayuda de una tabla de fechas puede utilizar la inteligencia de tiempo

Ejemplo

YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD('Date'[Date],"12/31"))
Last YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-1,Year),"12/31"))
This year Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR('Date'[Date]),"12/31"))
Last year Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR(dateadd('Date'[Date],-1,Year)),"12/31"))
Last to last YTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-2,Year),"12/31"))
Year behind Sales = CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Year))

Power BI — Año tras año con o sin inteligencia de tiempo
https://medium.com/@amitchandak.1978/power-bi-ytd-questions-time-intelligence-1-5-e3174b39f38a

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. recomienda:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions

Apreciamos tus Felicitaciones.

@amitchandak Ya tengo la cantidad YTD, no tengo los montos individuales de cheques que es lo que estoy tratando de resolver para. Estoy tratando de encontrar el único cheque de pago anterior ytd cantidad y reste de la cantidad ytd más actual (es decir, 300 - 250 x 50) para encontrar los montos individuales del cheque de pago.

Hola @jburklund ,

Por favor, pruebe esta columna calculada:

Column =
VAR YTD_ = 'Table'[YTD]
VAR a =
    MAXX (
        FILTER (
            'Table',
            EARLIER ( 'Table'[lat_check_date] ) > 'Table'[lat_check_date]
                && EARLIER ( 'Table'[CompanyName] ) = 'Table'[CompanyName]
                && EARLIER ( 'Table'[emplyee_pii_key] ) = 'Table'[emplyee_pii_key]
        ),
        'Table'[YTD]
    )
RETURN
    YTD_ - a

O

Paycheck Amount Calc =
VAR ytdPayroll =
    Payroll[ytd_wages_regular_overtime]
VAR a =
    CALCULATE (
        MAX ( 'Payroll'[ytd_wages_regular_overtime] ),
        FILTER (
            ALL ( Payroll ),
                'Payroll'[employee_pii_key] = EARLIER ( 'Payroll'[employee_pii_key] )
                    && 'Payroll'[last_check_date] < EARLIER ( 'Payroll'[last_check_date] )
            )
        )
    )
RETURN
    ytdPayroll - a

Medida:

Measure = 
VAR YTD_ = CALCULATE(SUM('Table'[YTD]))
VAR a =
    MAXX (
        FILTER (
            ALL('Table'),
            MAX( 'Table'[lat_check_date] ) > 'Table'[lat_check_date]
                && MAX('Table'[CompanyName] ) = 'Table'[CompanyName]
                && MAX('Table'[emplyee_pii_key] ) = 'Table'[emplyee_pii_key]
        ),
        'Table'[YTD]
    )
RETURN
    YTD_ - a

O

Paycheck Amount Calc =
VAR ytdPayroll =
    SUM(Payroll[ytd_wages_regular_overtime])
VAR a =
    CALCULATE (
        MAX ( 'Payroll'[ytd_wages_regular_overtime] ),
        FILTER (
            ALL ( Payroll ),
                'Payroll'[employee_pii_key] = MAX( 'Payroll'[employee_pii_key] )
                    && 'Payroll'[last_check_date] < MAX( 'Payroll'[last_check_date] )
            )
        )
    )
RETURN
    ytdPayroll - a

Best Regards,
Xue Ding
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Thank you so much @v-xuding-msft we will try it out!

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.