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
Anonymous
Not applicable

Convertir fechas de inicio y fin en rango continuo

Tengo la siguiente tabla:

 

jblancop_0-1660859492031.png

 

¿Cuál es la mejor manera de convertir las columnas Inicio y Fin en un continuo de fechas de manera que pueda graficar de forma sencilla los consumos e importes por día? Y de la misma manera poder agrupar también por semana, mes o año.

 

He construido una tabla calendario, cuya columna Fecha (creada con AUTOCALENDAR) he relacionado con Inicio. No sé si puede ser de ayuda.

 

Un saludo y gracias por adelantado.

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

@Syndicate_Admin ,

De acuerdo con su descripción, creo una muestra.

vkalyjmsft_0-1661331193078.png

Aquí está mi solución.

1.Cree una tabla de fecha, no establezca una relación entre las dos tablas.

Date = CALENDARAUTO()

2.Crear dos medidas.

Consumption Measure =
MAXX (
    FILTER (
        'Table',
        MAX ( 'Date'[Date] ) >= 'Table'[Start]
            && MAX ( 'Date'[Date] ) <= 'Table'[End]
    ),
    'Table'[Consumption]
)
Importe Measure =
MAXX (
    FILTER (
        'Table',
        MAX ( 'Date'[Date] ) >= 'Table'[Start]
            && MAX ( 'Date'[Date] ) <= 'Table'[End]
    ),
    'Table'[Importe]
)

Poner Fecha de la tabla Fecha en el eje X, Concepto en la leyenda y medir en el eje Y, obtener el resultado.

vkalyjmsft_1-1661331416467.png

vkalyjmsft_2-1661331531270.png

Adjunto mi muestra a continuación para su referencia.

Saludos
Equipo de apoyo a la comunidad _ kalyj

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Anonymous
Not applicable

¿Cuál es el objetivo de la tabla obtenida a través de FILTER()?


Si la implemento por sí sola, aparece vacía:

jblancop_0-1661979943903.png

¿Es posible que MAX('Calendario'[Fecha]) (final de año del año en curso) sea menor o igual que 'Suministros'[Fin]?

Anonymous
Not applicable

Muchísimas gracias por tu respuesta, increíble el nivel de detalle. Voy a intentar implementarla y te comento.

@Syndicate_Admin ,

¿Le importaría aceptar las respuestas útiles como soluciones? Entonces somos capaces de cerrar el hilo. Más personas que tienen el mismo requisito encontrarán la solución rápidamente y se beneficiarán aquí, ¡gracias!

Saludos
Equipo de apoyo a la comunidad _ kalyj

Syndicate_Admin
Administrator
Administrator

@Syndicate_Admin ,

Power Query puede crear filas de fecha a partir de las columnas de fecha de inicio y finalización, pero ¿cómo se supone que se distribuyen esos números? ¿Se dividirán por el número de días de principio a fin para que obtenga la cantidad diaria?

Anonymous
Not applicable

Sí, básicamente es lo que pretendo, obtener un ratio diario, que luego pueda ser agrupado a niveles superiores (mensual, anual), porque es imposible saber si un día hubo más o menos consumo. Simplemente sé que para un determinado periodo (los días entre Inicio y Fin) hubo X consumo que supuso Y gasto.

Este es un ejemplo de M Script que genera fechas mediante las columnas Fechas de inicio y finalización.

let
  Source = Table.FromRows(
    Json.Document(
      Binary.Decompress(
        Binary.FromText(
          "dZBBDoAgDAT/wtnEdhHavsX4/29IBJM14I2SSTu755m07qI7BJq21F6Cd6iWrq0BwYAzgA5kAuA0lOgAGGDa8wNA6U+FTtjCITNdSgcOlsy0wccG+5O0Om9AWZzgosBC7nMKOcghtG9g4EM7FgAbu8wpPj34qNr/JKssmhSOOSQ5OjizxaIHHqL1cN0=",
          BinaryEncoding.Base64
        ),
        Compression.Deflate
      )
    ),
    let
      _t = ((type nullable text) meta [Serialized.Text = true])
    in
      type table [Start = _t, End = _t, Value = _t]
  ),
  #"Changed Type" = Table.TransformColumnTypes(
    Source,
    {{"Start", type date}, {"End", type date}, {"Value", Int64.Type}}
  ),
  #"Added Custom" = Table.AddColumn(
    #"Changed Type",
    "Number of Days",
    each Duration.Days([End] - [Start]) + 1,
    Int64.Type
  ),
  #"Added Custom1" = Table.AddColumn(
    #"Added Custom",
    "Dates",
    each List.Dates([Start], [Number of Days], #duration(1, 0, 0, 0)),
    type list
  ),
  #"Expanded Dates" = Table.ExpandListColumn(#"Added Custom1", "Dates"),
  #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Dates", {{"Dates", type date}}),
  #"Added Custom2" = Table.AddColumn(
    #"Changed Type1",
    "New Value",
    each [Value] / [Number of Days],
    type number
  ),
  #"Removed Other Columns" = Table.SelectColumns(
    #"Added Custom2",
    {"Start", "End", "Dates", "New Value"}
  )
in
  #"Removed Other Columns"
Anonymous
Not applicable

Entiendo que la única manera de procesar esto es en la fase de consulta, con Power Query; ¿no hay posibilidad con DAX?

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

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

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

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

Top Solution Authors