Forum Discussion

data_operador1's avatar
4 years ago
Solved

Cambiar formato fecha con DirectQuery

Hola,

 

Tengo una base de datos conectada via DirectQuery a mi panel, en el que hay un gráfico en el cual, partiendo de un tipo fecha con formato dd/mm/aaaa he pasado a un formato aaaamm y funciona bien.

 

Ahora quiero que en el eje X (el eje de la fecha) aparezca una fecha con un formato fácil de leer para el usuario (tipo (mmm aaaa). He intentado usar la funcion Date en DAX pero no lo permite en DirectQuery.

 

¿Alguna idea de cómo hacerlo?

 

Muchísimas gracias.

  • Syndicate_Admin ,

    He probado algunas formas efectivas como la función FORMAT(), la función "Split", la sintaxis M a continuación y así sucesivamente ... Ninguno funcionó cuando se utilizó el modo de consulta directa. Por lo tanto, es posible que deba cambiar al modo de importación.

    Date.MonthName([Date]) &" " 
     & Text.End(Text.From( Date.Year([Date])),2)

    O con el modo DQ, siga estos pasos que podrían obtener con éxito el formato esperado de mi lado.

    En Power Query

    1. Haga clic con el botón derecho en la columna Fecha para duplicar la columna DateTime --> Cambiar tipo a Texto

    Eyelyn9_5-1643165250780.png

    2. Haga clic en la pestaña "Agregar columna" -->Usar texto.Inicio() para agregar una columna personalizada para obtener "mmm"

    Text.Start([#"Date - Copy"],3)

    3.Seleccione la columna Fecha-->Haga clic en la pestaña "Agregar columna" -->Fecha-Año

    Eyelyn9_2-1643165057021.png

    4. Agregue una columna personalizada:

    =[mmm]&" "& Text.End( Text.From([Year]),2)

    Eyelyn9_3-1643165110893.png

    5. Elimine las columnas innecesarias, a continuación se muestra la tabla final:

    Eyelyn9_4-1643165143959.png

    Toda la sintaxis M:

    let
        Source = Sql.Database("WX-85154\MSSQLSERVER01", "Eyelyn Test"),
        dbo_DateValue = Source{[Schema="dbo",Item="DateValue"]}[Data],
        #"Duplicated Column" = Table.DuplicateColumn(dbo_DateValue, "Date", "Date - Copy"),
        #"Changed Type" = Table.TransformColumnTypes(#"Duplicated Column",{{"Date - Copy", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "mmm", each Text.Start([#"Date - Copy"],3)),
        #"Inserted Year" = Table.AddColumn(#"Added Custom", "Year", each Date.Year([Date]), Int64.Type),
        #"Added Custom1" = Table.AddColumn(#"Inserted Year", "mmm yy", each [mmm]&" "& Text.End( Text.From([Year]),2)),
        #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Year", "Date - Copy", "mmm"})
    in
        #"Removed Columns"

    Ahora podría usar la columna mmm yy como eje X:

    Eyelyn9_6-1643165421821.png

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

3 Replies

  • @Syndicate_Admin puede agregar otra columna de fecha duplicada, cambiar el formato a lo que desee y usarlo en el eje x.

    Síguenos en LinkedIn (en inglés) y YouTube.gif a nuestro YouTube (en inglés) canal

    Más información sobre el formato condicional en Microsoft Reactor

    Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

    Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.

    • data_operador1's avatar
      data_operador1
      Helper I

      He agregado la nueva columna y he puesto otro formato pero ¿cómo hago para introducirla en el eje x sin que salgan en días?

      Disculpen mi inexperiencia.

       

      Un saludo

  • Syndicate_Admin ,

    He probado algunas formas efectivas como la función FORMAT(), la función "Split", la sintaxis M a continuación y así sucesivamente ... Ninguno funcionó cuando se utilizó el modo de consulta directa. Por lo tanto, es posible que deba cambiar al modo de importación.

    Date.MonthName([Date]) &" " 
     & Text.End(Text.From( Date.Year([Date])),2)

    O con el modo DQ, siga estos pasos que podrían obtener con éxito el formato esperado de mi lado.

    En Power Query

    1. Haga clic con el botón derecho en la columna Fecha para duplicar la columna DateTime --> Cambiar tipo a Texto

    Eyelyn9_5-1643165250780.png

    2. Haga clic en la pestaña "Agregar columna" -->Usar texto.Inicio() para agregar una columna personalizada para obtener "mmm"

    Text.Start([#"Date - Copy"],3)

    3.Seleccione la columna Fecha-->Haga clic en la pestaña "Agregar columna" -->Fecha-Año

    Eyelyn9_2-1643165057021.png

    4. Agregue una columna personalizada:

    =[mmm]&" "& Text.End( Text.From([Year]),2)

    Eyelyn9_3-1643165110893.png

    5. Elimine las columnas innecesarias, a continuación se muestra la tabla final:

    Eyelyn9_4-1643165143959.png

    Toda la sintaxis M:

    let
        Source = Sql.Database("WX-85154\MSSQLSERVER01", "Eyelyn Test"),
        dbo_DateValue = Source{[Schema="dbo",Item="DateValue"]}[Data],
        #"Duplicated Column" = Table.DuplicateColumn(dbo_DateValue, "Date", "Date - Copy"),
        #"Changed Type" = Table.TransformColumnTypes(#"Duplicated Column",{{"Date - Copy", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "mmm", each Text.Start([#"Date - Copy"],3)),
        #"Inserted Year" = Table.AddColumn(#"Added Custom", "Year", each Date.Year([Date]), Int64.Type),
        #"Added Custom1" = Table.AddColumn(#"Inserted Year", "mmm yy", each [mmm]&" "& Text.End( Text.From([Year]),2)),
        #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Year", "Date - Copy", "mmm"})
    in
        #"Removed Columns"

    Ahora podría usar la columna mmm yy como eje X:

    Eyelyn9_6-1643165421821.png

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