cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Administrator
Administrator

Fórmula Datevalue convertiendo en formato incorrecto

Hola, chicos

Tengo un archivo de datos con valores de fecha horrendos. Se exportan como "ddd dd-mm-aa" (véase "Begindatum")

Cuando se importa en PowerBi esto se ve como una cadena.

Así que hice una columna personalizada:

Start ( Start ) DATEVALUE(MID([Begindatum],4,99))
Pero esto convierte 14/12/20 (destinado a ser 14 de diciembre de 2020) en 12/10/2014 como se ve a continuación.

bi2.png

¿Cómo le digo a la fórmula datevalue "bruh, necesita hacer dd-mm-aa"?

Mi configuración de fecha de Windows es como deberían ser.

bi1.PNG

Salud

  

1 ACCEPTED SOLUTION

Hola @smpa01. Probé tu solución, pero no funcionó del todo. La razón de esto es porque a veces un día / mes puede tener sólo 1 carácter, lo que significa que siempre tomar 2 caracteres no funcionará.

Basándome en su solución trabajé mi camino a mi propia versión que parece funcionar para todas las entradas de fecha.

Así que por esa razón, gracias por el inicio a la solución 🙂



Lo descubrí con la siguiente columna calculada:

Start = 
var strin = TRIM(MID([Begindatum],4,99))


var day = LEFT(strin,SEARCH("-",strin,1,0)-1)
var month = ABS(MID(strin,SEARCH("-",strin,1,0)+1,2))
var year = "20"&RIGHT(strin,2)


var dat = DATE(year,month,day)
return dat

View solution in original post

3 REPLIES 3
Administrator
Administrator

Hay @ErikBI

Descargue este archivo PBIX de ejemplo con datos y código/resultado de trabajo

Cargue los datos en Power Query y, a continuación, divida la columna por delimitador (espacio). A continuación, puede convertir la columna en una columna Fecha real

Aquí está el código

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wyk1MVDA00TU00jUyUIrViVYqK8pUMDLSNdQ1MkTwzXSNkPkg1TA+qgGxAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Begindatum = _t]),
    #"Split Column by Delimiter" = Table.SplitColumn(Source, "Begindatum", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Begindatum.1", "Begindatum.2"}),
    #"Removed Columns" = Table.RemoveColumns(#"Split Column by Delimiter",{"Begindatum.1"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Columns",{{"Begindatum.2", type date}})
in
    #"Changed Type"

datess.png

saludos

Phil

Administrator
Administrator

@ErikBIpuede probar esto para una columna calculada

Column = 
var strin = TRIM(MID([Column1],4,99))
var year = RIGHT(strin,2)
var month = mid(strin,4,2)
var day = LEFT(strin,2)
var datestring = DATEVALUE(CONCATENATE(year,CONCATENATE("-",CONCATENATE(month,CONCATENATE("-",day)))))
Return datestring

Hola @smpa01. Probé tu solución, pero no funcionó del todo. La razón de esto es porque a veces un día / mes puede tener sólo 1 carácter, lo que significa que siempre tomar 2 caracteres no funcionará.

Basándome en su solución trabajé mi camino a mi propia versión que parece funcionar para todas las entradas de fecha.

Así que por esa razón, gracias por el inicio a la solución 🙂



Lo descubrí con la siguiente columna calculada:

Start = 
var strin = TRIM(MID([Begindatum],4,99))


var day = LEFT(strin,SEARCH("-",strin,1,0)-1)
var month = ABS(MID(strin,SEARCH("-",strin,1,0)+1,2))
var year = "20"&RIGHT(strin,2)


var dat = DATE(year,month,day)
return dat

View solution in original post

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.