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

Combinación de datos de dos tablas.

Tengo un desafío que estoy tratando de superar y espero que alguien aquí haya tenido un problema similar y pueda ayudar.

Tengo una tabla que contiene todos los casos gestionados por un helpdesk, fecha de entrada, duración, etc.

Hay múltiples casos para un día determinado, del mismo modo hay días sin casos.

Lo que quiero hacer es agregar la duración total de todos los casos manejados en un día determinado en una tabla separada que es una lista de todos los días del año.

Si no se registraron casos, quiero que la columna de duración de la tabla 2 muestre 0.

Si hubo casos, entonces quiero que la columna de duración de la tabla 2 muestre el total de la duración de todos los casos registrados esa fecha de la tabla 1.

Espero que esto tenga sentido. Estoy seguro de que hay una manera de hacer esto, simplemente no puedo entenderlo. Datos ficticios para explicar el concepto a continuación.

Cuadro 1 Datos del caso
Fecha y hora registradaIdentificación del casoDuración (Mins)
01/09/2021 09:0010010
01/09/2021 11:1510120
01/09/2021 13:3010230
03/09/2021 08:4510310
03/09/2020 09:3010415
04/09/2021 10:1510520
06/09/2021 09:3010650
06/09/2021 11:001075
08/09/2021 13:1510820
08/09/2021 14:0010920
10/09/2021 17:0011010

Cuadro 2 Total por fecha
FechaDuración total (minutos)
01/09/202160 Suma de la duración de todos los casos registrados el 1/9/21, por ejemplo, Suma D4:D6
02/09/20210 Suma de la duración de todos los casos registrados el 2/9/21 e.g.No casos en este día en la tabla de datos de casos, por lo que devuelve 0
03/09/202125 Suma de la duración de todos los casos registrados el 3/9/21, por ejemplo, Suma de D7:D8
04/09/202120 Suma de la duración de todos los casos registrados el 4/9/21, por ejemplo, Suma de D9
05/09/20210 Suma de la duración de todos los casos registrados el 5/9/21 e.g.No casos en este día en la tabla de datos de casos, por lo que devuelve 0
06/09/202155 Suma de la duración de todos los casos registrados el 6/9/21, por ejemplo, Suma de D10:D11
07/09/20210 Suma de la duración de todos los casos registrados el 7/9/21 e.g.No casos en este día en la tabla de datos de casos, por lo que devuelve 0
08/09/202140 Suma de la duración de todos los casos registrados el 8/9/21, por ejemplo, Suma de D12:D13
09/09/20210 Suma de la duración de todos los casos registrados el 9/9/21 e.g.No casos en este día en la tabla de datos de casos, por lo que devuelve 0
10/09/202110 Suma de la duración de todos los casos registrados el 9/10/21, por ejemplo, Suma de D14
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Aquí hay una forma de lograr lo que buscas.

En primer lugar, debe dividir la hora de fecha registrada en columnas de fecha y hora. En Power Query:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bZBBDoAgDAS/Yjib0KWgwFcI//+GKCWt0cteJjtbaM0RPBUfKGCjUonc7iDp+v7iQEV6CEaGL+fKsxlGsnBWf65x9tn42e5LP96ZJo/qp7WfzP7x0z9Gpg8f98vLzptPnO35os9Gb3hc9aIcpPwUjvV9/QI=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Logged Date Time" = _t, #"Case ID" = _t, #"Duration (Mins)" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Logged Date Time", type datetime}, {"Case ID", Int64.Type}, {"Duration (Mins)", Int64.Type}}),
    #"Split Column by Delimiter" = Table.SplitColumn(Table.TransformColumnTypes(#"Changed Type", {{"Logged Date Time", type text}}, "es-ES"), "Logged Date Time", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Logged Date Time.1", "Logged Date Time.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Logged Date Time.1", type date}, {"Logged Date Time.2", type time}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Logged Date Time.1", "Logged Date"}, {"Logged Date Time.2", "Logged Time"}})
in
    #"Renamed Columns"

Lo que te da esto:

Table.JPGNest crea una tabla de fechas mediante:

Date Table = 
VAR MinD = MIN('Table'[Logged Date])
VAR MaxD = MAX('Table'[Logged Date])
RETURN
CALENDAR(MinD, MaxD)

Cree una relación entre la tabla de fechas y el campo Fecha registrada. El modelo se ve así:
Model.JPG

Cree una medida para la duración:

Sum Duration = SUM('Table'[Duration (Mins)]) + 0

Y finalmente cree el visual usando el campo de fecha de la Tabla de fechas y la medida [Suma de duración] para obtener:

Result.JPG

He adjuntado el archivo PBIX de ejemplo

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Aquí hay una forma de lograr lo que buscas.

En primer lugar, debe dividir la hora de fecha registrada en columnas de fecha y hora. En Power Query:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bZBBDoAgDAS/Yjib0KWgwFcI//+GKCWt0cteJjtbaM0RPBUfKGCjUonc7iDp+v7iQEV6CEaGL+fKsxlGsnBWf65x9tn42e5LP96ZJo/qp7WfzP7x0z9Gpg8f98vLzptPnO35os9Gb3hc9aIcpPwUjvV9/QI=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Logged Date Time" = _t, #"Case ID" = _t, #"Duration (Mins)" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Logged Date Time", type datetime}, {"Case ID", Int64.Type}, {"Duration (Mins)", Int64.Type}}),
    #"Split Column by Delimiter" = Table.SplitColumn(Table.TransformColumnTypes(#"Changed Type", {{"Logged Date Time", type text}}, "es-ES"), "Logged Date Time", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Logged Date Time.1", "Logged Date Time.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Logged Date Time.1", type date}, {"Logged Date Time.2", type time}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Logged Date Time.1", "Logged Date"}, {"Logged Date Time.2", "Logged Time"}})
in
    #"Renamed Columns"

Lo que te da esto:

Table.JPGNest crea una tabla de fechas mediante:

Date Table = 
VAR MinD = MIN('Table'[Logged Date])
VAR MaxD = MAX('Table'[Logged Date])
RETURN
CALENDAR(MinD, MaxD)

Cree una relación entre la tabla de fechas y el campo Fecha registrada. El modelo se ve así:
Model.JPG

Cree una medida para la duración:

Sum Duration = SUM('Table'[Duration (Mins)]) + 0

Y finalmente cree el visual usando el campo de fecha de la Tabla de fechas y la medida [Suma de duración] para obtener:

Result.JPG

He adjuntado el archivo PBIX de ejemplo

Syndicate_Admin
Administrator
Administrator

Cree una tabla calculada de fechas usando CALENDAR o CALENDARAUTO, luego agregue una columna calculada con la suma de duraciones, algo como esto total_duration=CALCULATE(SUMX('Case Data','Case Data'[Duration (Mins)])).

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.