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.
Tengo una tabla calculcada que se ve como abajo:
TimecardID | EmpID | ChargeDate | Horas |
555455 | 1 | 12/13/20 | 10 |
555455 | 1 | 12/14/20 | 10 |
555455 | 1 | 12/15/20 | 10 |
Ignorando la columna timecardID, ¿cómo puedo agregar las horas de trabajo de un empleado durante los últimos 2 días?
Tal vez necesite aclarar - Sólo quiero añadir los últimos 2 días laborables si son consecutivos; si no es así, entonces no se debe agregar juntos.
¿Alguna de las soluciones proporcionadas tiene esto en cuenta? Me cuesta determinar si lo hacen.
Gracias
Hola, @mvgust
En función de su descripción, modifiqué los datos para reproducir su escenario. El archivo pbix se adjunta al final.
Mesa:
Puede crear una columna calculada o una medida como se indica a continuación.
Columna calculada:
Column =
var tab =
TOPN(
2,
FILTER(
ALL('Table'),
[EmpID]=EARLIER('Table'[EmpID])&&
NOT(WEEKDAY([ChangeDate]) in {1,7})
),
[ChangeDate]
)
var flag =
MAXX(tab,[ChangeDate])-MINX(tab,[ChangeDate])
return
IF(
[ChangeDate] in CALCULATETABLE(DISTINCT('Table'[ChangeDate]),tab)&&flag=1,
SUMX(tab,[Hours]),
[Hours]
)
Medida:
Measure =
var tab =
TOPN(
2,
FILTER(
ALL('Table'),
[EmpID]=MAX('Table'[EmpID])&&
NOT(WEEKDAY([ChangeDate]) in {1,7})
),
[ChangeDate]
)
var flag =
MAXX(tab,[ChangeDate])-MINX(tab,[ChangeDate])
return
IF(
MAX([ChangeDate]) in CALCULATETABLE(DISTINCT('Table'[ChangeDate]),tab)&&flag=1,
SUMX(tab,[Hours]),
SUM('Table'[Hours])
)
Resultado:
Cuando empID-1, los últimos 2 días laborables son '12/3/2020' y '12/4/2020' porque '12/5/2020' es sábado (no es un día laborable). Así que los resultados son 7 y 7.
Cuando el EmpID 2, los últimos 2 días laborables son '12/9/2020' (miércoles) y '12/10/2020' (jueves). Así que los resultados son 19 y 19.
Cuando el EmpID 3, los últimos 2 días laborables son '12/14/2020' y '12/16/2020'.
Sin embargo, no son consecutivas. Así que los resultados son 14 y 16 (datos en bruto).
Saludos
Allan
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola, @mvgust
Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
Mesa:
Puede crear una columna calculada o una medida como se indica a continuación.
Columna calculada:
Ressult Column =
COALESCE(
SUMX(
TOPN(
2,
FILTER(
ALL('Table'),
[EmpID]=EARLIER('Table'[EmpID])&&
[ChangeDate]<EARLIER('Table'[ChangeDate])&&
NOT(WEEKDAY([ChangeDate]) in {1,7})
),
[ChangeDate]
),
[Hours]
),0
)
Medida:
Ressult Measure =
COALESCE(
SUMX(
TOPN(
2,
FILTER(
ALL('Table'),
[EmpID]=MAX('Table'[EmpID])&&
[ChangeDate]<MAX('Table'[ChangeDate])&&
NOT(WEEKDAY([ChangeDate]) in {1,7})
),
[ChangeDate]
),
[Hours]
),0
)
Resultado:
Saludos
Alllan
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Utilice la siguiente fórmula:
Last 2 days =
CALCULATE (
SUM ( 'Table'[Hours]),
FILTER (
ALL ( 'Table' ),
'Table'[ChargeDate]
> TODAY() - 2
))
Hola, @mvgust , es muy probable que haya huecos en la columna de fecha, la fórmula DAX es un poco detallada; natually, también funciona en una columna de fecha consecutiva también.
Hrs last 2d =
VAR __rng =
TOPN (
2,
FILTER (
Attendance,
Attendance[ChargeDate] < EARLIER ( Attendance[ChargeDate] )
),
Attendance[ChargeDate], DESC
)
RETURN
SUMX ( __rng, Attendance[Hours] )
Thanks to the great efforts by MS engineers to simplify syntax of DAX! Most beginners are SUCCESSFULLY MISLED to think that they could easily master DAX; but it turns out that the intricacy of the most frequently used RANKX() is still way beyond their comprehension! |
DAX is simple, but NOT EASY! |
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |