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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

Presencia en el trabajo - horas

Hola

Tengo datos estructurados de esta manera:

MaciejARC_0-1643892470932.png

Y tengo que comprobar cuál fue la ocupación en horarios particulares (0-23). El resultado debería ser más o menos así:

MaciejARC_1-1643892551984.png

¿Cómo puedo hacer esto? 🙂

Gracias de antemano

MG

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hay @MaciejARC ,

De acuerdo con su descripción, tengo dos métodos.

Método1.Crear 24 medidas.

La fórmula para 0 es:

0 =
IF (
    DATEVALUE ( MAX ( 'Table'[End] ) ) > DATEVALUE ( MAX ( 'Table'[Start] ) )
        && (
            HOUR ( MAX ( 'Table'[End] ) ) > 0
                || HOUR ( MAX ( 'Table'[Start] ) ) <= 0
        ),
    1,
    IF (
        HOUR ( MAX ( 'Table'[Start] ) ) <= 0
            && HOUR ( MAX ( 'Table'[End] ) ) > 0,
        1,
        BLANK ()
    )
)

Las otras 23 medidas solo necesitan modificar los números correspondientes en la fórmula.

Obtenga el resultado esperado.

vkalyjmsft_0-1644399079164.png

Método2

1.Cree una tabla2 enumere todos los números del 0 al 23.

vkalyjmsft_2-1644399237117.png

2.Cree una tabla duplicada de la tabla original.

vkalyjmsft_3-1644399359869.png

3.Agregue un culomn personalizado.

vkalyjmsft_5-1644399579477.png

vkalyjmsft_4-1644399525799.png

Obtén esta tabla.

vkalyjmsft_6-1644399683515.png

4.Crea una medida.

Check = 
IF (
    DATEVALUE ( MAX ( 'Table3'[End] ) ) > DATEVALUE ( MAX ( 'Table3'[Start] ) )
        && (
            HOUR ( MAX ( 'Table3'[End] ) ) > MAX ( 'Table3'[Custom] )
                || HOUR ( MAX ( 'Table3'[Start] ) ) <= MAX ( 'Table3'[Custom] )
        ),
    1,
    IF (
        HOUR ( MAX ( 'Table3'[Start] ) ) <= MAX ( 'Table3'[Custom] )
            && HOUR ( MAX ( 'Table3'[End] ) ) > MAX ( 'Table3'[Custom] ),
        1,
        BLANK ()
    )
)

5.Cree una matriz visual, ponga la medida en Valor, obtenga el resultado.

vkalyjmsft_7-1644399884564.png

Adjunto mi muestra a continuación como referencia.

Saludos
Equipo de apoyo a la comunidad _ kalyj

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Hay @MaciejARC ,

De acuerdo con su descripción, tengo dos métodos.

Método1.Crear 24 medidas.

La fórmula para 0 es:

0 =
IF (
    DATEVALUE ( MAX ( 'Table'[End] ) ) > DATEVALUE ( MAX ( 'Table'[Start] ) )
        && (
            HOUR ( MAX ( 'Table'[End] ) ) > 0
                || HOUR ( MAX ( 'Table'[Start] ) ) <= 0
        ),
    1,
    IF (
        HOUR ( MAX ( 'Table'[Start] ) ) <= 0
            && HOUR ( MAX ( 'Table'[End] ) ) > 0,
        1,
        BLANK ()
    )
)

Las otras 23 medidas solo necesitan modificar los números correspondientes en la fórmula.

Obtenga el resultado esperado.

vkalyjmsft_0-1644399079164.png

Método2

1.Cree una tabla2 enumere todos los números del 0 al 23.

vkalyjmsft_2-1644399237117.png

2.Cree una tabla duplicada de la tabla original.

vkalyjmsft_3-1644399359869.png

3.Agregue un culomn personalizado.

vkalyjmsft_5-1644399579477.png

vkalyjmsft_4-1644399525799.png

Obtén esta tabla.

vkalyjmsft_6-1644399683515.png

4.Crea una medida.

Check = 
IF (
    DATEVALUE ( MAX ( 'Table3'[End] ) ) > DATEVALUE ( MAX ( 'Table3'[Start] ) )
        && (
            HOUR ( MAX ( 'Table3'[End] ) ) > MAX ( 'Table3'[Custom] )
                || HOUR ( MAX ( 'Table3'[Start] ) ) <= MAX ( 'Table3'[Custom] )
        ),
    1,
    IF (
        HOUR ( MAX ( 'Table3'[Start] ) ) <= MAX ( 'Table3'[Custom] )
            && HOUR ( MAX ( 'Table3'[End] ) ) > MAX ( 'Table3'[Custom] ),
        1,
        BLANK ()
    )
)

5.Cree una matriz visual, ponga la medida en Valor, obtenga el resultado.

vkalyjmsft_7-1644399884564.png

Adjunto mi muestra a continuación como referencia.

Saludos
Equipo de apoyo a la comunidad _ kalyj

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

Creo que esta solución no resolverá mi problema. Obtendré algo así:

MaciejARC_0-1643893310431.png

Syndicate_Admin
Administrator
Administrator

Una buena manera de hacerlo es dividir las dos columnas DateTime en columnas Date y Time, y agregar una tabla Date y una tabla Time al modelo. A continuación, puede crear una matriz con horas en columnas y días en filas para crear el objeto visual deseado. Por favor, vea este artículo y específicamente los dos videos en la parte inferior.

Calcular y formatear duraciones en DAX – Hoosier BI

Palmadita

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors