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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Obtención de totales precisos en matrix visual

Estamos tratando de resolver para los montos individuales de cheques de pago dado el monto de pago YTD (ytd_wages_subject_to_FUTA) en la medida de prueba de cheque de pago. A continuación, tenemos que ajustar la granularidad hasta un nivel para sumar todos los importes del cheque de pago por un período de tiempo determinado, en este caso el año fiscal 2020 de enero a diciembre. No podemos confiar en la columna de salarios YTD porque a veces el FYE no cae en el final del año calendario o nos gustaría agregar en la dirección del empleado en lugar de cada fecha de pago individual.

Estamos experimentando el problema descrito en este post de SQLBI, pero no hemos sido capaces de ajustar con éxito nuestra medida DAX para resolver nuestro problema: https://www.sqlbi.com/articles/obtaining-accurate-totals-in-dax/

Necesitamos la medida de prueba de cheque de pago para proporcionar una suma exacta de todos los montos individuales del cheque de pago en el subtotal para el empleado en el visual de matriz. Por ejemplo, Oscar el Grouch está mostrando una suma de $2,520,100 para el año fiscal 2020 cuando debería totalizar todos los montos de cheque individuales en la columna Prueba de cheque de pago por un total de $100,600.

Incluimos datos de muestra para 3 empleados para el año fiscal 2020 con cheques de pago de diciembre de 2019 también para probar si podemos ajustar el plazo y todavía llegar a un resumen preciso en el nivel de matriz de salarios por empleado.

Enlace a GoogleDrive con archivo PBIX de ejemplo: https://drive.google.com/drive/folders/12S4mvom2rKnWBXp6PGFnP5gDY3WOlJBZ?usp=sharing

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @jburklund,

Lo siento por la respuesta tardía. De hecho, es un poco complicado. Me tomé un tiempo para la prueba.

Puede realizar algunos pasos de la siguiente manera.

1. cree una columna calculada.

Rango = RANKX(FILTER(ALL('vw_payroll_1'),[social_security_number]=EARLIER('vw_payroll_1'[social_security_number])),CALCULATE(VALUES(vw_payroll_1[last_check_date])),,ASC)

2. crear dos medidas.

Medida = 

IF(

MAX('vw_payroll_1'[Rango])=MINX(

FILTRO(

ALLSELECTED('vw_payroll_1'),

[social_security_number]=MAX('vw_payroll_1'[social_security_number])),

[Rango]

),

SUM('vw_payroll_1'[ ytd_wages_subject_to_FUTA ]),

SUM('vw_payroll_1'[ ytd_wages_subject_to_FUTA ])-SUMX(

FILTRO(

ALLSELECTED('vw_payroll_1'),

[social_security_number]=MAX('vw_payroll_1'[social_security_number])&&[Rango]=MAX('vw_payroll_1'[Rango])-1),

[ ytd_wages_subject_to_FUTA ])

)
Prueba = 

var x1=SUMMARIZE('vw_payroll_1',vw_payroll_1[social_security_number],vw_payroll_1[last_check_date],vw_payroll_1[ ytd_wages_subject_to_FUTA ],"mease",[Medida])

var x2=SUMX(x1,[mease])

devolución

IF(ISINSCOPE(vw_payroll_1[social_security_number]),IF('isinscope('vw_payroll_1'[last_check_date]),[Medida],x2),x2)

resultado:

041401.gif

Espero que eso es lo que estabas buscando.

Saludos

Yuna

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

No @jburklund,

Lo siento por la respuesta tardía. De hecho, es un poco complicado. Me tomé un tiempo para la prueba.

Puede realizar algunos pasos de la siguiente manera.

1. cree una columna calculada.

Rango = RANKX(FILTER(ALL('vw_payroll_1'),[social_security_number]=EARLIER('vw_payroll_1'[social_security_number])),CALCULATE(VALUES(vw_payroll_1[last_check_date])),,ASC)

2. crear dos medidas.

Medida = 

IF(

MAX('vw_payroll_1'[Rango])=MINX(

FILTRO(

ALLSELECTED('vw_payroll_1'),

[social_security_number]=MAX('vw_payroll_1'[social_security_number])),

[Rango]

),

SUM('vw_payroll_1'[ ytd_wages_subject_to_FUTA ]),

SUM('vw_payroll_1'[ ytd_wages_subject_to_FUTA ])-SUMX(

FILTRO(

ALLSELECTED('vw_payroll_1'),

[social_security_number]=MAX('vw_payroll_1'[social_security_number])&&[Rango]=MAX('vw_payroll_1'[Rango])-1),

[ ytd_wages_subject_to_FUTA ])

)
Prueba = 

var x1=SUMMARIZE('vw_payroll_1',vw_payroll_1[social_security_number],vw_payroll_1[last_check_date],vw_payroll_1[ ytd_wages_subject_to_FUTA ],"mease",[Medida])

var x2=SUMX(x1,[mease])

devolución

IF(ISINSCOPE(vw_payroll_1[social_security_number]),IF('isinscope('vw_payroll_1'[last_check_date]),[Medida],x2),x2)

resultado:

041401.gif

Espero que eso es lo que estabas buscando.

Saludos

Yuna

Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

No @jburklund,

Gracias por compartir sus datos de ejemplo. Pero tal vez no estoy recibiendo lo que realmente estás tratando de hacer. ¿Desea reemplazar el valor de "Paycheck Trial" medida con el valor de "Max de ytd_wages_subject_to_FUTA " en la siguiente tabla?

v-yuaj-msft_1-1618208535931.png

¿Podría por favor compartir su resultado esperado conmigo? (una captura de pantalla o una tabla también)

Saludos

Yuna

No @v-yuaj-msft ,

Adjunto es una captura de pantalla y también subí los datos de ejemplo y la solución necesaria como un archivo de Excel en la carpeta de GoogleDrive vinculada anteriormente.

La medida de prueba de cheque de pago se está resolviendo correctamente para el monto actual del cheque de pago dados los salarios YTD en la columna "ytd_wages_subject_to_FUTA". Sin embargo, está sumando incorrectamente en matrix en el nivel del empleado y no sólo las líneas de cheques de pago individuales. $2,520,100 para Oscar el Grouch debería estar sumando cada monto del cheque de pago y totalizar $100,600.

NeededSolutionDAXpaycheckTrial.png

Syndicate_Admin
Administrator
Administrator

Enlace actualizado a GoogleDrive

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.