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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
jwi1
Post Patron
Post Patron

Fecha de emisión

Buenos días

Espero que alguien pueda ayudarme con lo siguiente.

Tengo los siguientes datos.

Como se puede ver en 2020, en la semana 7, el empleado trabajó 8 horas el lunes, 8 horas el martes y así sucesivamente.

Desafortunadamente, sólo se mencionan los días (MO, TU, etc.), no las fechas (10/2/2020 - 16/02/2020).

Estoy buscando una solución para traducir los días a fechas.

La información proviene de 2 tablas, como se menciona a continuación.

¡Gracias!

John

Así es como se ve ahora:

añoSemanaMoNosotrosTHViesuyosSU
202078888800

Y esto es lo que estoy buscando:

añoSemana10/2/202011/02/202012/2/202013/2/202014/2/202015/2/202016/2/2020
202078888800

estas son las 2 tablas:

Knipsel.JPG

HRM_TIMECARD:

Knipsel.JPG

HR_TIMECARDLINE

Knipsel.JPG

1 REPLY 1
AllisonKennedy
Super User
Super User

Puede expandir este informe para que funcione durante todo el año agregando una tabla DimDate al modelo y creando una columna de clave de fecha que pueda obtener la fecha por usted en función del año, el número de semana y el nombre del día.

Aquí está el código M para los datos de ejemplo que creé para su escenario, simplemente péguelo en un nuevo espacio de consulta en el Editor de Power Query:

Dejar
Source á Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSAWMLNGwGxCAUqwNRY0RAjRER5hCjxpgINSZDElpCYWAA", BinaryEncoding.Base64), Compression.Deflate)), let _t á ((tipo de texto que acepta valores NULL) meta [Serialized.Text ? true]) en la tabla de tipos [TIMECARD_ID - _t, PROJECT_ID - _t, MO - _t, TU - _t, Nosotros, _t, TH, _t, FR, _t, SA, _t, SU, _t]),
"Tipo cambiado" - Table.TransformColumnTypes(Source,"TIMECARD_ID", Int64.Type, "PROJECT_ID", Int64.Type, "MO", Int64.Type, "TU", Int64.Type, "WE", Int64.Type, "TH", Int64.Type, "FR", Int64.Type, Int64.Type, Int64.Type, "SA", Int64.Type, "SU", Int64.Type,
"Consultas combinadas" - Table.NestedJoin('Changed Type", ''TIMECARD_ID'', HRM_TIMECARD, ''ID'', ''HRM_TIMECARD', 'JoinKind.LeftOuter'),
"Expanded HRM_TIMECARD" - Table.ExpandTableColumn('"Consultas combinadas", "HRM_TIMECARD", ''Año", 'Semana', ''Año', ''Semana''
"Columnas renombradas" - Table.RenameColumns("Expanded HRM_TIMECARD","MO", "Monday", "TU", "Tuesday", "WE", "Miércoles", "TH", "Thursday", "FR", "Viernes", "SA", "Sábado", "SU", """"""""""""""""""""""""""","Domingo""
"Unpivoted Only Selected Columns" ? Table.Unpivot('"Renamed Columns",'Sunday', 'Saturday', "Friday", "Thursday", "Wednesday", "Tuesday", "Tuesday", "Monday","Day Name", "Hours"),
"Columna combinada insertada" á Table.AddColumn(''Solo se ha votado' Columnas seleccionadas", "Clave de fecha", cada Text.Combine('Text.From([Year]), Text.From([Week], "en-US"), [Nombre del día],""), texto de texto)
En
"Columna combinada insertada"

Verás que he hecho un despivot para los días de la semana y luego lo combino con los datos de semana y año de tu otra tabla.

Realice la misma columna Merge en la tabla DimDate. Vea una publicación aquí para obtener ayuda sobre la creación de DimDate; https://allisonkennedycv.blogspot.com/2020/04/dimdate-what-why-and-how.html

O el código M actualizado para su escenario:

Dejar
startDate á #date(2020, 1, 1),
endDate ? Date.From(DateTime.LocalNow()),
Dates á List.Dates(startDate, Duration.Days(endDate - startDate), #duration (1,0,0,0)),
"Convertido a la tabla" - Table.FromList(Dates, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
"Columnas renombradas" - Table.RenameColumns('Converted to Table",'Column1', 'Date" ?),
"Tipo de cambio" - Table.TransformColumnTypes('"Columnas renombradas",'Fecha', tipo fecha'),
"Año insertado" - Table.AddColumn(-"Changed Type", "Year", each Date.Year([Date]), Int64.Type),
"Trimestre insertado" - Table.AddColumn("Año insertado", "Cuarto", cada Date.QuarterOfYear([Fecha]), Int64.Type),
"Añadido cuartos de ejercicio" - Table.AddColumn("Cuarto insertado", "Trimestre de FY", cada uno si [Cuarto] - 1 y 1" más si [Cuarto] a 2 y luego "Q1" más si [Cuarto] a 3 y luego "Q2" más "Q3", escriba texto),
"Nombre del mes insertado" - Table.AddColumn("Added FY Quarters", "Month name", each Date.MonthName([Date]), escriba texto),
"Mes insertado" - Table.AddColumn("Nombre del mes insertado", "Número de mes", cada Fecha.Mes([Fecha]), Int64.Type),
"Semana del año insertada" - Table.AddColumn("Mes insertado", "Semana del año", cada Fecha.WeekOfYear([Fecha]), Int64.Type),
"Semana del mes insertada" - Table.AddColumn("Semana insertada del año", "Semana del mes", cada Fecha.WeekOfMonth([Fecha]), Int64.Type),
"Día del año insertado" - Table.AddColumn("Semana de mes insertada", "Día del año", cada Date.DayOfYear([Fecha]), Int64.Type),
"Insertado Día de la Semana" - Table.AddColumn("Insertado Día del Año", "Día de la Semana", cada Date.DayOfWeek([Fecha]), Int64.Type),
"Insertado Día del Mes" - Table.AddColumn("Insertado Día de la Semana", "Día del mes", cada Date.Day([Fecha]), Int64.Type),
"Nombre de día insertado" ? Table.AddColumn('"Insertado Día del Mes", "Nombre del día", cada Date.DayOfWeekName([Fecha]), escriba el texto),
"Columna combinada insertada" á Table.AddColumn(-"Nombre de día insertado", "Clave de fecha", cada Text.Combine('Text.From([Year], "en-US]), Text.From([Week of Year], "en-US"), [Day name],""), escriba texto)
En
"Columna combinada insertada"

Cierre y aplique los cambios y cree una relación entre la clave de fecha en DimDate y HR_TIMECARDLINE tablas.

Esto debería obtener lo que necesita para cualquier cálculo o salida deseada.

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

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.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

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

August Carousel

Fabric Community Update - August 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors