no de días entre dos fechas por mes

Un usuario Pregunto ✅

kohlivinayak

Hola tengo una tabla como la de abajo

Tipo | Fecha de inicio | fecha final

A | 07-feb-2014 | 24-abr-2014

B | 12-mar-2014 | 30-oct-2015

y quiero una salida como

tipo | Feb-2014 | Marzo-2014 | Abril-2014 |

A | 22 | 31 | 24 |

B | 0 | 20 | 30 |

su cálculo del número de días tipo A se utilizó en un mes en particular.

Agradeciendotelo de antemano.

Hola @kohlivinayak,

Suponga que el original se llama ‘Tabla de origen’.

Primero crea una tabla de calendario:

Calendar =
CALENDAR (
    DATE ( YEAR ( MIN ( 'Source table'[Start date] ) ), MONTH ( MIN ( 'Source table'[Start date] ) ), 1 ),
    DATE ( YEAR ( MAX ( 'Source table'[end date] ) ), MONTH ( MAX ( 'Source table'[end date] ) ), 31 )
)

Filtrar por encima de la tabla «Calendario»:

Calendar 2 =
FILTER (
    'Calendar',
    DAY ( [Date] )
        = CALCULATE (
            MAX ( 'Calendar'[Date].[Day] ),
            ALLEXCEPT ( 'Calendar', 'Calendar'[Date].[Month] )
        )
)

1.PNG

Unión cruzada ‘Tabla de origen’ y ‘Calendar2’. Y agregue una columna calculada en una nueva tabla.

Cross Join =
CROSSJOIN ( 'Source table', 'Calendar 2' )

Column1 =
IF (
    'Cross Join'[Date].[MonthNo] = 'Cross Join'[Start date].[MonthNo],
    DATEDIFF ( 'Cross Join'[Start date], 'Cross Join'[Date], DAY ) + 1,
    IF (
        'Cross Join'[Date].[MonthNo] = 'Cross Join'[end date].[MonthNo],
        'Cross Join'[end date].[Day],
        IF (
            'Cross Join'[Date].[MonthNo] > 'Cross Join'[Start date].[MonthNo]
                && 'Cross Join'[Date].[MonthNo] < 'Cross Join'[end date].[MonthNo],
            'Cross Join'[Date].[Day],
            0
        )
    )
)

2.PNG

Utilice una matriz para alojar datos de la tabla ‘Cross Join’.

3.PNG

Atentamente,

Yuliana Gu

Hola @kohlivinayak,

Suponga que el original se llama ‘Tabla de origen’.

Primero crea una tabla de calendario:

Calendar =
CALENDAR (
    DATE ( YEAR ( MIN ( 'Source table'[Start date] ) ), MONTH ( MIN ( 'Source table'[Start date] ) ), 1 ),
    DATE ( YEAR ( MAX ( 'Source table'[end date] ) ), MONTH ( MAX ( 'Source table'[end date] ) ), 31 )
)

Filtrar por encima de la tabla «Calendario»:

Calendar 2 =
FILTER (
    'Calendar',
    DAY ( [Date] )
        = CALCULATE (
            MAX ( 'Calendar'[Date].[Day] ),
            ALLEXCEPT ( 'Calendar', 'Calendar'[Date].[Month] )
        )
)

1.PNG

Unión cruzada ‘Tabla de origen’ y ‘Calendar2’. Y agregue una columna calculada en una nueva tabla.

Cross Join =
CROSSJOIN ( 'Source table', 'Calendar 2' )

Column1 =
IF (
    'Cross Join'[Date].[MonthNo] = 'Cross Join'[Start date].[MonthNo],
    DATEDIFF ( 'Cross Join'[Start date], 'Cross Join'[Date], DAY ) + 1,
    IF (
        'Cross Join'[Date].[MonthNo] = 'Cross Join'[end date].[MonthNo],
        'Cross Join'[end date].[Day],
        IF (
            'Cross Join'[Date].[MonthNo] > 'Cross Join'[Start date].[MonthNo]
                && 'Cross Join'[Date].[MonthNo] < 'Cross Join'[end date].[MonthNo],
            'Cross Join'[Date].[Day],
            0
        )
    )
)

2.PNG

Utilice una matriz para alojar datos de la tabla ‘Cross Join’.

3.PNG

Atentamente,

Yuliana Gu

afernandez99012

En respuesta a v-yulgu-msft

Hola,

He seguido los pasos, pero mi resultado en la mayoría de los casos para la columna 1 es negativo, ¿alguna idea de por qué esto tal vez?

Gracias de antemano

kohlivinayak

En respuesta a v-yulgu-msft

Muchas gracias, siento que hay mucho que aprender.

¿Dónde puedo encontrar esas cosas para aprender más en powerbi?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *