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

Suma las últimas 2 horas de trabajo del empleado

Tengo una tabla calculcada que se ve como abajo:

TimecardIDEmpIDChargeDateHoras
555455112/13/2010
555455112/14/2010
555455112/15/2010

Ignorando la columna timecardID, ¿cómo puedo agregar las horas de trabajo de un empleado durante los últimos 2 días?

5 REPLIES 5
mvgust
Helper III
Helper III

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:

d1.png

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

e1.png

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.

v-alq-msft
Community Support
Community Support

Hola, @mvgust

Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

Mesa:

c1.png

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:

c2.png

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.

themistoklis
Community Champion
Community Champion

@mvgust

Utilice la siguiente fórmula:

Last 2 days = 
CALCULATE (
    SUM ( 'Table'[Hours]),
    FILTER (
        ALL ( 'Table' ),
        'Table'[ChargeDate]
            > TODAY() - 2
    ))
CNENFRNL
Community Champion
Community Champion

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] )

Untitled.png


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!

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.