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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Anonymous
Not applicable

Número de semana incorrecto al final del año / comienzo

Hola

Tengo un problema con los números de semanas en una tabla de fechas donde necesito la fecha 2020-12-28 a 2021-01-3 para ser la semana 53, y 2021-01-04 a 2021-01-10 para ser w 1. La semana 2 comenzará en 2021-01-11. Como se muestra en la imagen de abajo, esto no es lo que obtengo usando la forumula para Weeknumber de la siguiente manera: "WeekNumber", each Date.WeekOfYear(([Date]),Day.Monday)).

¿Alguien tiene alguna sugerencia sobre cómo solucionar esto?

Weeks.PNG

1 ACCEPTED SOLUTION
AilleryO
Memorable Member
Memorable Member

Hola

En su primera captura de pantalla, parece que el número de semanas se ordena como texto, así que creo que si los formatea como números, o usa 01 en lugar de 1 debería hacer el truco.

El número de captura de pantalla es más extraño, ¿lo ordenas por números de semana?

Que tengas un buen día

View solution in original post

15 REPLIES 15
Syndicate_Admin
Administrator
Administrator

Por favor, busque la función para el número ISO año/semana (ISO 8601))


¡NB! Preste atención al parámetro offsetindays (por defecto es igual a cero, significa que la semana comienza el domingo)

Syndicate_Admin
Administrator
Administrator

Mientras no haya una característica directa de Microsoft para ISO-weeks,

Sugeriría la siguiente solución que supongo que debería ser la solución más eficiente:

= Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte1 Wochentag", "Woche", each Date.WeekOfYear(Date.AddDays([Datum],-7)), Int64.Type)

Syndicate_Admin
Administrator
Administrator

Hola Helena,

Usé:

Semana DE LA SEMANA('Fecha',21)

Funciona para mí.

Esta es una función de Excel, no una función de consulta de poder

Syndicate_Admin
Administrator
Administrator

Encontré en este enlace una respuesta muy simple <https://blog.gbrueckl.at/2012/04/iso-8601-week-in-dax/>

Simplemente insertando otro parámetro indo la función de conversión WEEKNUM.

WEEKNUM([Fecha],2) --> WEEKNUM([Fecha],21)

Parece ser una nueva característica según DAX Guide, actualiza enero 2021.

Para aquellos que quieren saber más al respecto :

https://dax.guide/weeknum/

Gracias por la información 🙂

AilleryO
Memorable Member
Memorable Member

Hola

En su primera captura de pantalla, parece que el número de semanas se ordena como texto, así que creo que si los formatea como números, o usa 01 en lugar de 1 debería hacer el truco.

El número de captura de pantalla es más extraño, ¿lo ordenas por números de semana?

Que tengas un buen día

Anonymous
Not applicable

Eso resolvió ambas capturas de pantalla, gracias!

FrankAT
Community Champion
Community Champion

Hola @helenawickstrom

Power Query no puede calcular la semana de calender ISO. Tienes que hacerlo manulally con una función personalizada como esta:

// This function expects a valid date as argument
let
    fxWeekOfCalendar = (Data as date) =>
    let
        Weekday = Date.DayOfWeek(Data) + 1,
        Part1 = Number.From(Data) - Weekday + 11,
        Part2 = Number.From(#date(Date.Year(Date.From(Number.From(Data) + 4 - Weekday)),1,1)),
        Part3 = (Part1 - Part2) / 7,
        Tranc = Part3 - Number.Mod(Part3, 1)
    in
        Tranc
in
    fxWeekOfCalendar

04-11-_2020_12-53-19.png

Con saludos amables desde la ciudad donde la leyenda del 'Pied Piper de Hamelin' está en casa
FrankAT (Orgulloso de ser un Datanaut)

AilleryO
Memorable Member
Memorable Member

@helenawickstrom ,

También tiene una solución para calcular ISO Week Number (primera semana de 4 días), utilizando el código M para agregar al código creando la tabla de fechas:

//Calculate ISO Week Num in 4 steps 
//Step1. Calculate the date of the Thursday of the week 
InsertCurrThursday = Table.AddColumn(InsertMonthEnding, "CurrThursday", each Date.AddDays([DateRef], -Date.DayOfWeek([DateRef],1) + 3), type date),
//Step2. Calculate the 1st january of the date (cf step1) 
InsertFirstJan = Table.AddColumn(InsertCurrThursday, "FirstJan", each #date(Date.Year([CurrThursday]),1,1),type date),
//Step3. Calculate the number of days between the 1st january and Thursday
InsertDuration= Table.AddColumn(InsertFirstJan, "Duration", each Duration.Days(Duration.From([CurrThursday] - [FirstJan])), type number),
//Step4. Divide the number of days (duration)calculated on step3 by 7
//Roud it down and add 1
InsertISOWeekNum = Table.AddColumn(InsertDuration, "NumSemISO", each Number.RoundDown([Duration]/7)+1), ChangeType5=Table.TransformColumnTypes(InsertISOWeekNum,{{"NumSemISO", Int64.Type}}),
//Delete unusefull columns 
RemovedColumns = Table.RemoveColumns(ChangeType5, {"CurrThursday","FirstJan","Duration"})

Estoy usando las reglas definidas por la norma ISO:

Para más detalles :

https://en.wikipedia.org/wiki/ISO_week_date

Espero que ayude

No @AilleryO

Por alguna razón, estoy recibiendo un error de expresión:

Expression.Error: no se reconoció el nombre 'InsertMonthEnding'. Asegúrate de que esté escrito correctamente.

Anonymous
Not applicable

¡Hola, eso funcionó perfecto! ¡Gracias!

Hi,

Perfecto !

Do not forget to accept the solution so others can find it 😉

Gracias and good day

Anonymous
Not applicable

Hola de nuevo @AilleryO ,

Me di cuenta de que tengo los problemas con las fechas y semanas no ordenar correctamente usando exactamente la fórmula como tan amablemente recomendado, cualquier idea lo que causa esto? /Helena

Capture.PNGCapture7.png

amitchandak
Super User
Super User

@helenawickstrom , tenga estas columnas en la tabla de fechas

Fecha de inicio de la semana : 'Fecha'[Fecha]+-1*WEEKDAY('Date'[Fecha],2)+1

min week start of year á minx(filter('Date',[Year] ?earlier([Year])),[Week Start date])
semana No - cociente(datediff([min week start of year],[date],day),7)+1

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.