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
Syndicate_Admin
Administrator
Administrator

¿Cómo crear la semana de la columna calculada trimestre?

Hola a todos

Estoy luchando para crear una columna calculada "Semana del trimestre". Tengo trimestre-sabio fecha-sabio refiera debajo de los datos de muestra.

Necesito una fórmula DAX para el resultado deseado.

periodoFecha de incentivoSemana del trimestre (resultado deseado)
FY20-Q401-Ene-20 WK- 1
FY20-Q414-Ene-20 WK- 2
FY20-Q421-Ene-20 WK- 3
FY20-Q428-Ene-20 WK- 4
FY20-Q404-Feb-20 WK- 5
FY20-Q411-Feb-20 WK- 6
FY20-Q418-Feb-20 WK- 7
FY20-Q425-Feb-20 WK- 8
FY20-Q403-Mar-20 WK- 9
FY20-Q410-Mar-20 WK- 10
FY20-Q417-Mar-20 WK- 11
FY20-Q424-Mar-20 WK- 12
FY20-Q431-Mar-20 WK- 13
FY21-Q101-Abr-20 WK- 1
FY21-Q114-Abr-20 WK- 2
FY21-Q121-Abr-20 WK- 3
FY21-Q128-Abr-20 WK- 4
FY21-Q105-Mayo-20 WK- 5
FY21-Q112-Mayo-20 WK- 6
FY21-Q119-Mayo-20 WK- 7
FY21-Q126-Mayo-20 WK- 8
FY21-Q102-Jun-20 WK- 9
FY21-Q109-Jun-20 WK- 10
FY21-Q116-Jun-20 WK- 11
FY21-Q123-Jun-20 WK- 12
FY21-Q130-Jun-20 WK- 13

gracias

Lavdeep

1 ACCEPTED SOLUTION

Por favor, pruebe este en su lugar.

Semana de Qtr =
VAR este cuarto =
TRIMESTRE ( Semanas[FechaAcceso] )
VAR qtrstart =
FECHA ( AÑO ( Semanas[IncentiveDate] ), este cuarto * 3 - 2, 1 )
VAR wks =
ROUNDUP ( DATEDIFF ( qtrstart, Weeks[IncentiveDate] + 1, DAY ) / 7, 0 )
devolución
"WK-" & wks

mahoneypat_0-1627735500838.png

palmadita

View solution in original post

11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

Eso fue perfecto, he estado buscando ese por un tiempo. Gracias @mahoneypat!!

Syndicate_Admin
Administrator
Administrator

Esta expresión de columna parece funcionar.

Semana de Qtr =
VAR este cuarto =
TRIMESTRE ( Semanas[FechaAcceso] )
VAR qtrstart =
FECHA ( AÑO ( Semanas[IncentiveDate] ), este cuarto * 3 - 2, 1 )
VAR wks =
DATEDIFF ( qtrstart, Weeks[IncentiveDate], WEEK )
devolución
IF ( wks = 0, "WK-" & wks + 1, "WK-" & wks )

mahoneypat_0-1627680208181.png

palmadita

Hey Pat, @mahoneypat

Gracias por la respuesta

Cuando implemento proporcionar la fórmula DAX en mis datos parece no funcionar. Como se puede ver a continuación captura de pantalla donde 8 de enero a 11 de enero marcado como WK-1 .it debe ser marcado como WK- 2 debido a estas fechas caen bajo WK-2.

Por favor, ayúdame si estoy haciendo algo desgastado.

Puede descargar este conjunto de datos para validar el resultado

Semana del trimestre del archivo de Excel

lavdeepk_0-1627704402776.png

Por favor, pruebe este en su lugar.

Semana de Qtr =
VAR este cuarto =
TRIMESTRE ( Semanas[FechaAcceso] )
VAR qtrstart =
FECHA ( AÑO ( Semanas[IncentiveDate] ), este cuarto * 3 - 2, 1 )
VAR wks =
ROUNDUP ( DATEDIFF ( qtrstart, Weeks[IncentiveDate] + 1, DAY ) / 7, 0 )
devolución
"WK-" & wks

mahoneypat_0-1627735500838.png

palmadita

@mahoneypat Gracias está funcionando bien

Es posible si podemos lograr el mismo resultado sin usar la función "QUARTER "?

Porque también necesito usar la misma fórmula Dax en pivote de potencia. desde "QUARTER " La función no existe en el pivote de potencia No soy capaz de usar el mismo Dax

Sí. Puede utilizar esto en su lugar para esa variable.

var thisquarter = ROUNDUP(MONTH(Weeks[IncentiveDate])/3,0)
palmadita

Código muy limpio.

La única brecha es que no está arreglando la secuencia si el trimestre anterior termina y el nuevo trimestre comienza en la misma semana.

m_refaei_0-1627680852810.png

El 14 de abril de 2020 debería ser la 3ª semana

Syndicate_Admin
Administrator
Administrator

Puede usar esta idea, agregarla como una columna calculada.

QuarterWeekNum =
"WK-"
    & SWITCH (
        TRUE (),
        MONTH ( IncentiveDate ) < 4, WEEKNUM ( IncentiveDate ),
        MONTH ( IncentiveDate ) < 7,
            IF (
                WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 3, 31 ) )
                    = WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 4, 1 ) ),
                WEEKNUM ( IncentiveDate ) - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 3, 31 ) ) + 1,
                WEEKNUM ( IncentiveDate ) - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 3, 31 ) )
            ),
        MONTH ( IncentiveDate ) < 10,
            IF (
                WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 6, 30 ) )
                    = WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 7, 1 ) ),
                WEEKNUM ( IncentiveDate ) - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 6, 30 ) ) + 1,
                WEEKNUM ( IncentiveDate ) - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 6, 30 ) )
            ),
        IF (
            WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 9, 30 ) )
                = WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 10, 1 ) ),
            WEEKNUM ( IncentiveDate ) - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 9, 30 ) ) + 1,
            WEEKNUM ( IncentiveDate ) - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 9, 30 ) )
        )
    )

No @m_refaei

Utilizo la fórmula dax proporcionada por ti pero su no trabajando para mí . Refiera debajo del área resaltada amarilla SS.

Del 1 de enero al 7 de enero debe marcarse como WK-1.

lavdeepk_0-1627707339336.png

Obviamente, la definición de la semana no es correcta en la tabla de calendario que está utilizando.

m_refaei_0-1627710467884.png

La semana 1 termina el 4 o 5 de enero de 2020 según la configuración de su región.

Si su semana comienza el lunes, entonces la fórmula debe modificarse para:

QuarterWeekNum =
"WK-"
    & SWITCH (
        TRUE (),
        MONTH ( IncentiveDate ) < 4, WEEKNUM ( IncentiveDate, 2 ),
        MONTH ( IncentiveDate ) < 7,
            IF (
                WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 3, 31 ), 2 )
                    = WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 4, 1 ), 2 ),
                WEEKNUM ( IncentiveDate, 2 )
                    - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 3, 31 ), 2 ) + 1,
                WEEKNUM ( IncentiveDate, 2 )
                    - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 3, 31 ), 2 )
            ),
        MONTH ( IncentiveDate ) < 10,
            IF (
                WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 6, 30 ), 2 )
                    = WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 7, 1 ), 2 ),
                WEEKNUM ( IncentiveDate, 2 )
                    - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 6, 30 ), 2 ) + 1,
                WEEKNUM ( IncentiveDate, 2 )
                    - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 6, 30 ), 2 )
            ),
        IF (
            WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 9, 30 ), 2 )
                = WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 10, 1 ), 2 ),
            WEEKNUM ( IncentiveDate, 2 )
                - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 9, 30 ), 2 ) + 1,
            WEEKNUM ( IncentiveDate, 2 )
                - WEEKNUM ( DATE ( YEAR ( IncentiveDate ), 9, 30 ), 2 )
        )
    )
Syndicate_Admin
Administrator
Administrator

Hay @lavdeepk,

Aquí hay una idea para lograrlo, pero necesitaría ver cómo adaptar la fórmula para administrar los números de la misma semana de diferentes trimestres. Debería haber una forma más eficiente.

Teniendo en cuenta una tabla de dos columnas: "Fecha" y "Trimestre":

Week of Quarter = 
VAR Week = WEEKNUM('Table'[Date],2)
VAR Week_last_day_Q1 = WEEKNUM(DATE(YEAR('Table'[Date]),3,31))
VAR Week_last_day_Q2 = WEEKNUM(DATE(YEAR('Table'[Date]),6,30))
VAR Week_last_day_Q3 = WEEKNUM(DATE(YEAR('Table'[Date]),9,30))
RETURN
SWITCH('Table'[Quarter],
        1 , Week ,
        2 , Week - Week_last_day_Q1 ,
        3 , Week - Week_last_day_Q2 ,
        4 , Week - Week_last_day_Q3
)

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.