Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
2 years ago

Visualiza las edades

He buscado un poco y no puedo encontrar la respuesta a esta pregunta.

Tengo una mesa grande. Uno de los campos tiene una fecha de "primera búsqueda" con una fecha en el pasado. Podría ser hace 1 día, podría hace 1000 días. He duplicado esta columna y la he convertido a la edad, por lo que tengo una columna que muestra la edad, que es esencialmente el número de días entre el "primer hallazgo" y el día de hoy. La edad, simple.

Ahora quiero visualizar en un solo gráfico (probablemente solo un gráfico de barras) un valor total para lo siguiente

30-60 días de edad

60-180 días de edad

180-365 días de edad

365+ días de edad

Puedo hacer esto con filtros bastante simples si hago imágenes separadas, pero puedo averiguar cómo hacerlo en una imagen visual. ¿Alguna idea?

1 Reply

  • Hola @lfkent73

    Hice esto en Power Query, pero también puede hacerlo en DAX si lo desea. Encuentro PQ un poco más fácil para esto.

    Esta es la tabla con la que termino

    Este es el código de consulta

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMtQ31DcyMDJSitUhgmOMjWOMzDFF5lhSlWNoQCbPECsvFgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"First Found" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"First Found", type date}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Age", each Duration.TotalDays(Date.From(DateTime.LocalNow()) - [First Found])),
        #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Age", Int64.Type}}),
        #"Added Custom1" = Table.AddColumn(#"Changed Type1", "Age Bands", each if [Age] < 30 then "1-29" else 
    
    if [Age] < 60 then "30-59" else 
    
    if [Age] < 180 then "60-179" else 
    
    if [Age] < 365 then "180-364" else 
    
    "365+"),
        #"Merged Queries" = Table.NestedJoin(#"Added Custom1", {"Age Bands"}, #"Sort Order", {"Age Band"}, "Sort Order", JoinKind.LeftOuter),
        #"Expanded Sort Order" = Table.ExpandTableColumn(#"Merged Queries", "Sort Order", {"Sort Order"}, {"Sort Order"})
    in
        #"Expanded Sort Order"

    Lo que he hecho es crear columnas personalizadas para la edad y las bandas de edad. La columna Orden de clasificación proviene de otra tabla creada específicamente para que pueda ordenar las bandas de edad de una manera predeterminada. Si intentara ordenar por los valores de texto de las bandas de edad, obtendría resultados no deseados. Esta es la tabla

    Verás que las bandas de edad no se superponen, es decir, no puedes tener bandas como 30-60 y 60-180. Un valor de 60 no puede estar en 2 bandas.

    Aquí está el gráfico de barras

    Está ordenado en las bandas de edad, pero tienen una columna Ordenar por, que es la columna Orden de clasificación: lea más sobre esto aquí Ordenar una columna con un orden personalizado en Power BI - RADACAD

    Saludos

    Phil