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

Necesita tabla de fechas para comenzar la semana el domingo

Mi fecha de inicio parece estar equivocada en mi tabla de citas. Está mostrando que este año tiene 52 semanas y lo necesito para mostrar 53.

Creo que necesito agregar algún tipo de código de fecha de inicio a la consulta M. Si alguien sabe cómo hacer esto, o qué agregar, eso sería genial. Necesito la semana para empezar el domingo.

¡Gracias!

(StartDate as date, EndDate as date, FYStartMonth as number) como tabla ?>
Dejar
DayCount ? Duration.Days(Duration.From(EndDate - StartDate)),
Origen: List.Dates(StartDate,DayCount,#duration(1,0,0,0)),
TableFromList ? Table.FromList(Source, Splitter.SplitByNothing()),
ChangedType á Table.TransformColumnTypes(TableFromList,-"Column1", tipo date-),
RenamedColumns ? Table.RenameColumns(ChangedType,'Column1", "Date" ? )
InsertYear ? Table.AddColumn(RenamedColumns, "Year", each Date.Year([Date]),type text),
InsertYearNumber ? Table.AddColumn(RenamedColumns, "YearNumber", each Date.Year([Date])),
InsertQuarter á Table.AddColumn(InsertYear, "QuarterOfYear", each Date.QuarterOfYear([Date])),
InsertMonth á Table.AddColumn(InsertQuarter, "MonthOfYear", each Date.Month([Date]), escriba texto),
InsertDay ? Table.AddColumn(InsertMonth, "DayOfMonth", each Date.Day([Date])),
InsertDayInt ? Table.AddColumn(InsertDay, "DateInt", cada [Año] * 10000 + [MonthOfYear] * 100 + [DayOfMonth]),
InsertMonthName ? Table.AddColumn(InsertDayInt, "MonthName", each Date.ToText([Date], "MMMM"), escriba texto), escriba texto),
InsertCalendarMonth á Table.AddColumn(InsertMonthName, "MonthInCalendar", cada uno (try(Text.Range([MonthName],0,3)) de lo contrario [MonthName]) & " " & Number.ToText([Year])),
InsertCalendarQtr á Table.AddColumn(InsertCalendarMonth, "QuarterInCalendar", cada "Q" & Number.ToText([QuarterOfYear]) & " " & Number.ToText([Year])),
InsertDayWeek ? Table.AddColumn(InsertCalendarQtr, "DayInWeek", each Date.DayOfWeek([Date])),
InsertDayName ? Table.AddColumn(InsertDayWeek, "DayOfWeekName", each Date.ToText([Date], "dddd"), escriba texto), escriba texto),
InsertWeekEnding ? Table.AddColumn(InsertDayName, "WeekEnding", each Date.EndOfWeek([Date]), tipo date),
InsertWeekNumberTM Table.AddColumn(InsertWeekEnding, "Week Number", each Date.WeekOfYear([Date])),
InsertMonthnYear á Table.AddColumn(InsertWeekNumber,"MonthnYear", cada [Año] * 10000 + [MonthOfYear] * 100),
InsertQuarternYear á Table.AddColumn(InsertMonthnYear,"QuarternYear", each [Year] * 10000 + [QuarterOfYear] * 100),
ChangedType1 ? Table.TransformColumnTypes(InsertQuarternYear,'QuarternYear", Int64.Type','Número de semana', Int64.Type','Año', escriba text','MonthnYear', Int64.Type, "DateInt", Int64.Type, "DayOfMonth", Int64.Type, "MonthOfYear", Int64.Type, "QuarterOfYear", Int64.Type, "MonthInCalendar", escriba text, "QuarterInCalendar", escriba text, "DayInWeek", Int64.Type,),
InsertShortYear á Table.AddColumn(ChangedType1, "ShortYear", each Text.End(Text.From([Year]), 2), texto de tipo),
AddFY - Table.AddColumn(InsertShortYear, "FY", cada "FY"&(if [MonthOfYear]>-FYStartMonth then Text.From(Number.From([ShortYear])+1) else [ShortYear]))
En
AddFY

2 ACCEPTED SOLUTIONS
AlB
Super User
Super User

Allí @texmexdragon

Debe cambiar estas dos líneas:

InsertDayWeek = Table.AddColumn(InsertCalendarQtr, "DayInWeek", cada Date.DayOfWeek([Fecha],1)),

InsertWeekEnding = Table.AddColumn(InsertDayName, "WeekEnding", cada Date.EndOfWeek([Fecha],1), fecha de tipo),

Por favor, marque la pregunta resuelta cuando haya terminado y considere la posibilidad de dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener soporte con cualquier necesidad de BI a mayor escala, tutoría, etc.

Salud

SU18_powerbi_badge

View solution in original post

@texmexdragon Pero 2019 tiene 53 semanas si comienzas una semana un domingo como los días 29, 30 y 31 están todos en la semana 53 del año. De hecho, 365/7 a 52,14 por lo que todos/casi todos los años técnicamente tendrán 1 o más fechas que caen en una semana 53 en general.


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

8 REPLIES 8
v-jingzhang
Community Support
Community Support

Hola @texmexdragon , se ha resuelto el problema? Si es así, acepte la publicación adecuada como la solución o publique su propia solución para ayudar a cerrar este tema. Más gente se beneficiará de ello. Muchas gracias.

Además, hay 51 domingos en 2019. Así que si decide contar 52 o 53 semanas en 2019 o funciona. Sólo tiene que seguir la misma regla durante semanas a lo largo de dos años para evitar perder o repetir días de conteo en estas semanas para diferentes años.

Saludos
Equipo de apoyo a la comunidad _ Jing Zhang

Greg_Deckler
Super User
Super User

@texmexdragon IDK, semanas en 2019 - Bing

52 semanas y 1 día. Cuento 53 semanas en este calendario a menos que no cuentes la primera semana de enero porque no hay domingo.

image.png


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Fowmy
Super User
Super User

@texmexdragon

Lo que ya tiene es una función, puede proporcionar los valores para los parámetros según sea necesario.

Puede pegar lo siguiente en una consulta en blanco, las tres líneas iniciales son para que introduzca los valores:

let
StartDate  = #date(2020,1,1),
EndDate = #date(2020,12,31),
FYStartMonth  = 1,

DayCount = Duration.Days(Duration.From(EndDate - StartDate)),
Source = List.Dates(StartDate,DayCount,#duration(1,0,0,0)),
TableFromList = Table.FromList(Source, Splitter.SplitByNothing()),
ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}),
RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}),
InsertYear = Table.AddColumn(RenamedColumns, "Year", each Date.Year([Date]),type text),
InsertYearNumber = Table.AddColumn(RenamedColumns, "YearNumber", each Date.Year([Date])),
InsertQuarter = Table.AddColumn(InsertYear, "QuarterOfYear", each Date.QuarterOfYear([Date])),
InsertMonth = Table.AddColumn(InsertQuarter, "MonthOfYear", each Date.Month([Date]), type text),
InsertDay = Table.AddColumn(InsertMonth, "DayOfMonth", each Date.Day([Date])),
InsertDayInt = Table.AddColumn(InsertDay, "DateInt", each [Year] * 10000 + [MonthOfYear] * 100 + [DayOfMonth]),
InsertMonthName = Table.AddColumn(InsertDayInt, "MonthName", each Date.ToText([Date], "MMMM"), type text),
InsertCalendarMonth = Table.AddColumn(InsertMonthName, "MonthInCalendar", each (try(Text.Range([MonthName],0,3)) otherwise [MonthName]) & " " & Number.ToText([Year])),
InsertCalendarQtr = Table.AddColumn(InsertCalendarMonth, "QuarterInCalendar", each "Q" & Number.ToText([QuarterOfYear]) & " " & Number.ToText([Year])),
InsertDayWeek = Table.AddColumn(InsertCalendarQtr, "DayInWeek", each Date.DayOfWeek([Date])),
InsertDayName = Table.AddColumn(InsertDayWeek, "DayOfWeekName", each Date.ToText([Date], "dddd"), type text),
InsertWeekEnding = Table.AddColumn(InsertDayName, "WeekEnding", each Date.EndOfWeek([Date]), type date),
InsertWeekNumber= Table.AddColumn(InsertWeekEnding, "Week Number", each Date.WeekOfYear([Date])),
InsertMonthnYear = Table.AddColumn(InsertWeekNumber,"MonthnYear", each [Year] * 10000 + [MonthOfYear] * 100),
InsertQuarternYear = Table.AddColumn(InsertMonthnYear,"QuarternYear", each [Year] * 10000 + [QuarterOfYear] * 100),
ChangedType1 = Table.TransformColumnTypes(InsertQuarternYear,{{"QuarternYear", Int64.Type},{"Week Number", Int64.Type},{"Year", type text},{"MonthnYear", Int64.Type}, {"DateInt", Int64.Type}, {"DayOfMonth", Int64.Type}, {"MonthOfYear", Int64.Type}, {"QuarterOfYear", Int64.Type}, {"MonthInCalendar", type text}, {"QuarterInCalendar", type text}, {"DayInWeek", Int64.Type}}),
InsertShortYear = Table.AddColumn(ChangedType1, "ShortYear", each Text.End(Text.From([Year]), 2), type text),
AddFY = Table.AddColumn(InsertShortYear, "FY", each "FY"&(if [MonthOfYear]>=FYStartMonth then Text.From(Number.From([ShortYear])+1) else [ShortYear]))
in
AddFY

________________________

Si mi respuesta fue útil, haga clic en Aceptarla como la solución para ayudar a otros miembros a encontrarla útil

Haga clic en el icono Thumbs-Up si le gusta esta respuesta 🙂


Sitio web Youtube Linkedin

Did I answer your question? Mark my post as a solution! and hit thumbs up


Subscribe and learn Power BI from these videos

Website LinkedIn PBI User Group

Anonymous
Not applicable

@Fowmy Pregunta. Así que mi tabla de fechas debe volver el 1 de enero de 2017 y finalizar el 31 de diciembre de 2024. ¿Cambiaría las fechas de inicio y finalización de su código a esa fecha? ¿Y copiar el resto del código?

Mi preocupación / pregunta también es que tengo varias columnas calculadas personalizadas ya en uso, y creo que sobrescribir mi código de tabla de fechas actual afectaría esto. Es así como columnas personalizadas en el editor de consultas que tengo. La solución del otro cartel por encima de sólo modificar el código parecía funcionar... para el año 2020.....pero también me está dando 53 semanas para 2019.

AlB
Super User
Super User

Allí @texmexdragon

Debe cambiar estas dos líneas:

InsertDayWeek = Table.AddColumn(InsertCalendarQtr, "DayInWeek", cada Date.DayOfWeek([Fecha],1)),

InsertWeekEnding = Table.AddColumn(InsertDayName, "WeekEnding", cada Date.EndOfWeek([Fecha],1), fecha de tipo),

Por favor, marque la pregunta resuelta cuando haya terminado y considere la posibilidad de dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener soporte con cualquier necesidad de BI a mayor escala, tutoría, etc.

Salud

SU18_powerbi_badge

Anonymous
Not applicable

Usando esta solución.... Pensé que lo tenía funcionando.... pero mirando más de cerca: 2020 parece ser fijo. Pero ahora 2019 aparece con 53 semanas. ¿Alguna idea? Necesito 2019 para mostrar, correctamente, 52 semanas, pero sólo 2020 debe mostrar 53.

texmexdragon_0-1608238852836.png

@texmexdragon Pero 2019 tiene 53 semanas si comienzas una semana un domingo como los días 29, 30 y 31 están todos en la semana 53 del año. De hecho, 365/7 a 52,14 por lo que todos/casi todos los años técnicamente tendrán 1 o más fechas que caen en una semana 53 en general.


Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

@Greg_Deckler Parece que hay una serie de sitios web "calendario" que dicen que 2019 tiene 52 semanas, pero la información varía de un sitio a un sitio. Supongo que todo depende de la fecha de "inicio" de la semana, que en mi caso aquí en los EE.UU. quiero estar un domingo. La mayoría de los sitios parecen estar de acuerdo en que 2019 tiene sólo 52 semanas, aunque por lo que he visto.

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

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

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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