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.
Hola foro,
Tendría que presentar un resumen del estado del ticket al final de cada mes en función de los datos del registro de cambios de tickets. He estado tratando de encontrar ideas de cómo conseguir esto a través de varios mensajes, pero no hay suerte hasta ahora. Por ejemplo, esto es algo cercano, pero no es exactamente adecuado para mis necesidades debido a diferentes tipos de datos de origen.
Mi conjunto de datos es así
Tabla: Status_Changes
Id | Fecha | Old_Status | New_Status |
100 | 29.11.2020 | status3 | status4 |
102 | 25.11.2020 | status3 | status4 |
104 | 19.10.2020 | status3 | status4 |
103 | 21.8.2020 | status2 | status3 |
104 | 30.7.2020 | status2 | status3 |
104 | 5.6.2020 | status1 | status2 |
103 | 1.6.2020 | status1 | status2 |
100 | 23.5.2020 | status2 | status3 |
102 | 15.4.2020 | status2 | status3 |
101 | 15.4.2020 | status3 | status2 |
101 | 15.4.2020 | status2 | status3 |
101 | 14.4.2020 | status1 | status2 |
100 | 8.3.2020 | status1 | status2 |
100 | 5.1.2020 | status0 | status1 |
Hay un ID de ticket, la fecha (o realmente la hora) en la que se cambió el estado y los estados de él se cambiaron y a qué estado se ha cambiado.
De esto, debería proporcionar algo como esto, donde tengo un recuento distinto de entradas para cada mes por estado
Cada vale debe aparecer en el objeto visual solo en el mes en que se ve el primer cambio de estado en los datos. Una vez que un ticket ha alcanzado el estado final (status4 en la muestra) debe desaparecer del objeto visual en el mes siguiente (número de ticket de caso 104 en noviembre/última columna).
Estaba pensando en transformar los datos de origen en algo como abajo donde habría fila para cada vale que se ha visto en los datos de origen hasta ahora para cada mes y el último New_Status que ha estado en los datos.
Y una vez que un boleto se alcanza el status4, después de un mes se debe mover a status5. Eso se puede considerar como archivado o similar en caso de que sea información interesante más adelante. Status5 se puede dejar fuera del objeto visual.
¿Pero no sé cómo conseguir esto con DAX? ¿O hay alguna otra manera de obtener lo visual que necesito?
Year_Month | Id | Latest_Status |
2020-11 | 100 | status4 |
2020-11 | 102 | status4 |
2020-11 | 101 | status2 |
2020-11 | 104 | status5 |
2020-11 | 103 | status3 |
2020-10 | 100 | status3 |
2020-10 | 102 | status3 |
2020-10 | 101 | status2 |
2020-10 | 104 | status4 |
2020-10 | 103 | status3 |
2020-09 | 100 | status3 |
2020-09 | 102 | status3 |
2020-09 | 101 | status2 |
2020-09 | 104 | status3 |
2020-09 | 103 | status3 |
2020-08 | 100 | status3 |
2020-08 | 102 | status3 |
2020-08 | 101 | status2 |
2020-08 | 104 | status3 |
2020-08 | 103 | status3 |
2020-07 | 100 | status3 |
2020-07 | 102 | status3 |
2020-07 | 101 | status2 |
2020-07 | 104 | status3 |
2020-07 | 103 | status2 |
2020-06 | 100 | status3 |
2020-06 | 102 | status3 |
2020-06 | 101 | status2 |
2020-06 | 104 | status2 |
2020-06 | 103 | status2 |
2020-05 | 100 | status3 |
2020-05 | 102 | status3 |
2020-05 | 101 | status2 |
2020-04 | 100 | status2 |
2020-04 | 102 | status3 |
2020-04 | 101 | status2 |
2020-03 | 100 | status2 |
2020-02 | 100 | status1 |
2020-01 | 100 | status1 |
Cualquier idea es bienvenida.
Coloque el siguiente código M en una consulta en blanco para ver los pasos. Es posible que tenga que ajustarlo un poco para adaptarlo completamente a sus necesidades
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jdFBDoQgDAXQu7A2TX8L6pzFsPAM6v2lLhRGDOygeb9NYVkcmN3g5EcACYtdtn3dj03vk3dxMCgGQwf0qYLUkVvQKgKaSydZ4mmoTFOPCzSWDFngGYs2ux5GKbSmWgWBfMuh6vQ1t+4++vl/V99jJu1h6XdLlgdiPAE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, Date = _t, Old_Status = _t, New_Status = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Date", type date}, {"Old_Status", type text}, {"New_Status", type text}}),
transform_ = Table.TransformColumns(#"Changed Type",{"Date", each Date.StartOfMonth(_)}),
#"Added Custom" = Table.AddColumn(transform_, "NextDate", each List.Select(List.Dates([Date], let aux_ = List.Min(Table.SelectRows(transform_, (inner)=>inner[ID]=[ID] and inner[Date]>[Date])[Date]) in if aux_ <> null then Duration.Days(aux_-[Date]) else 1 , Duration.From(1)), each Date.Day(_)=1)),
#"Expanded Next date" = Table.ExpandListColumn(#"Added Custom", "NextDate"),
#"Added Custom1" = Table.AddColumn(#"Expanded Next date", "Latest_Status", each if [NextDate]= [Date] then [New_Status] else null, type text),
#"Filled Down" = Table.FillDown(#"Added Custom1",{"Latest_Status"}),
#"Removed Columns" = Table.RemoveColumns(#"Filled Down",{"Date", "Old_Status", "New_Status"})
in
#"Removed Columns"
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Quiero decir
La medida que proporcionó está utilizando la tabla de ejemplo posterior para contar el valor. Pero aún no tengo esa mesa. Es sólo ejemplo hecho a mano que me gustaría obtener basado en los datos de origen.
Tengo los datos de origen en PowerBI como tabla como esta
Tabla: Status_Changes
Id | Fecha | Old_Status | New_Status |
100 | 29.11.2020 | status3 | status4 |
102 | 25.11.2020 | status3 | status4 |
104 | 19.10.2020 | status3 | status4 |
103 | 21.8.2020 | status2 | status3 |
104 | 30.7.2020 | status2 | status3 |
104 | 5.6.2020 | status1 | status2 |
103 | 1.6.2020 | status1 | status2 |
100 | 23.5.2020 | status2 | status3 |
102 | 15.4.2020 | status2 | status3 |
101 | 15.4.2020 | status3 | status2 |
101 | 15.4.2020 | status2 | status3 |
101 | 14.4.2020 | status1 | status2 |
100 | 8.3.2020 | status1 | status2 |
100 | 5.1.2020 | status0 | status1 |
¿Cómo puedo transformar eso con DAX en una tabla como la siguiente para poder visualizar los datos como se esperaba? Esto podría utilizarse para calcular la medida que sugirió.
Llamemos a esto por ejemplo Tabla: Latest_Statuses_Per_Month
Year_Month | Id | Latest_Status |
2020-11 | 100 | status4 |
2020-11 | 102 | status4 |
2020-11 | 101 | status2 |
2020-11 | 104 | status5 |
2020-11 | 103 | status3 |
2020-10 | 100 | status3 |
2020-10 | 102 | status3 |
2020-10 | 101 | status2 |
2020-10 | 104 | status4 |
2020-10 | 103 | status3 |
2020-09 | 100 | status3 |
2020-09 | 102 | status3 |
2020-09 | 101 | status2 |
2020-09 | 104 | status3 |
2020-09 | 103 | status3 |
2020-08 | 100 | status3 |
2020-08 | 102 | status3 |
2020-08 | 101 | status2 |
2020-08 | 104 | status3 |
2020-08 | 103 | status3 |
2020-07 | 100 | status3 |
2020-07 | 102 | status3 |
2020-07 | 101 | status2 |
2020-07 | 104 | status3 |
2020-07 | 103 | status2 |
2020-06 | 100 | status3 |
2020-06 | 102 | status3 |
2020-06 | 101 | status2 |
2020-06 | 104 | status2 |
2020-06 | 103 | status2 |
2020-05 | 100 | status3 |
2020-05 | 102 | status3 |
2020-05 | 101 | status2 |
2020-04 | 100 | status2 |
2020-04 | 102 | status3 |
2020-04 | 101 | status2 |
2020-03 | 100 | status2 |
2020-02 | 100 | status1 |
2020-01 | 100 | status1 |
O bien, ¿puedo realizar la visualización de destino de alguna otra manera en función de la tabla Status_Changes?
No entiendo la pregunta
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Gracias, el gráfico es como se espera. Necesito probar la medida también, pero parece algo que estoy mirando.
Pero, ¿cómo puedo transformar de la tabla de datos de origen a la tabla de destino?
Ahí @JabbaKyba
No se muestran los números/fechas en el gráfico, así que no estoy seguro de cuál es exactamente el resultado esperado, pero vea el archivo adjunto para una posible solución. Utiliza Latest_status en la leyenda del gráfico y esta medida:
Measure =
VAR status_ = SELECTEDVALUE(Table1[Latest_Status])
RETURN
IF(status_ <> "status5", DISTINCTCOUNT(Table1[ID]))
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |