Forum Discussion
Formato de fecha
- 6 years ago
Hola @GuerauFF ,
Pruebe el siguiente código:
if Text.End([DAte], 2) = "AM" or Text.End([DAte], 2) = "PM" then Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0") & "/" & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0") & "/" & Text.AfterDelimiter([DAte], "/", 1) else Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0") & "/" & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0") & "/" & Text.AfterDelimiter(Text.BeforeDelimiter([DAte], " ", 0), "/", 1) & " " & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12 then Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0) else Number.ToText( Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) - 12 )) & ":" & Text.AfterDelimiter([DAte], ":", 0) & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12 then " AM" else " PM")
Hola @MFelix
Lo intenté de nuevo y está funcionando, supongo que estaba cometiendo un error al poner la variable correcta en la fórmula.
There's solo un problema a la izquierda, parece que it's trabajar para las fechas con las que estaba teniendo problemas antes, pero isn't de trabajo para los otros que tenía. Antes de cambiar el formato:
Y después del cambio de formato:
¿Alguna idea de cómo podría hacer que funcione para ambos tipos de fecha?
¡Gracias por tu ayuda!
Guerau
Hola @GuerauFF ,
Pruebe el siguiente código:
if Text.End([DAte], 2) = "AM" or Text.End([DAte], 2) = "PM"
then Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0")
& "/"
& Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0")
& "/"
& Text.AfterDelimiter([DAte], "/", 1)
else Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0")
& "/"
& Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0")
& "/"
& Text.AfterDelimiter(Text.BeforeDelimiter([DAte], " ", 0), "/", 1)
& " "
& (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12
then Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)
else Number.ToText(
Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) - 12
))
& ":"
& Text.AfterDelimiter([DAte], ":", 0)
& (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12
then " AM"
else " PM")- GuerauFF6 years ago
Helper II
Hey @MFelix !
Juro que será el último número. Esta mañana, cuando corrí la fórmula, pensé que funcionaba correctamente y me mudé a otras tareas, pero ahora, veo que todavía hay un problema.
En las filas que inicialmente tienen este formato: dd/mm/aaaa hh:mm:ss, de la fórmula estoy obteniendo este formato: mm/dd/aaaa hh:mm:ss AM/PM y debería estar obteniendo dd/mm/aaaa hh:mm:ss AM/PM. Supongo que sólo tengo que cambiar el orden de algunas de las filas en la fórmula, no estoy seguro de cuáles aunque...
¿Cómo sería la fórmula teniendo en cuenta este pequeño cambio?
¡Gracias!
¡¡¡Editar!!! No importa, lo tengo por mi cuenta. ¡Gracias de todos modos!
- MFelix6 years ago
Super User
Hola @GuerauFF ,
¿Tiene filas sin AM/PM que tienen dd/mm/AAAA y otras que tienen mm/dd/aaaa? o todos tienen el dd/mm/aaaa?
En la pantalla que presente que no es legible.
Pruebe esta medida:
if Text.End([DAte], 2) = "AM" or Text.End([DAte], 2) = "PM" then Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0") & "/" & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0") & "/" & Text.AfterDelimiter([DAte], "/", 1) else Text.PadStart(Text.AfterDelimiter(Text.BeforeDelimiter([DAte], "/", 1), "/", 0), 2, "0") & "/" & Text.AfterDelimiter(Text.BeforeDelimiter([DAte], " ", 0), "/", 1) & "/" & Text.PadStart(Text.BeforeDelimiter([DAte], "/", 0), 2, "0") & " " & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12 then Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0) else Number.ToText( Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) - 12 )) & ":" & Text.AfterDelimiter([DAte], ":", 0) & (if Number.FromText(Text.BeforeDelimiter(Text.AfterDelimiter([DAte], " ", 0), ":", 0)) < 12 then " AM" else " PM")