Convertir AAAAMM hasta la fecha

Un usuario Pregunto ✅

jpt1228

Hola, he buscado por todas partes y veo que muchas personas tienen el problema opuesto.

Tengo una columna de fecha que es AAAAMM y necesito convertirla en una fecha que la tabla de fechas pueda reconocer. Cuando agrego una columna en mi tabla de fechas con formato de fecha AAAAMM, no me deja debido a la duplicación de YearMonth en la columna. Quiero convertir 201709 al mes/año (9/2017) o 9/1/2017)

Fecha Convertir.JPG

jpt1228

En respuesta a jpt1228

Lo descubrí: convirtió la columna AAAAMM en texto y luego agregó una nueva columna y usó este código.

=Date.FromText(
Text.Range([Input Date as Sting], 0,4) & "-"  &
Text.Range([Input Date as Sting], 4,2)
)

Marcel Beug

¿Su columna AAAAMM es texto o numérica?

¿Está buscando una solución DAX o Power Query (M)?

¿Cuál es tu código hasta ahora?

jpt1228

En respuesta a Marcel Beug

Hola, @MarcelBeug, estoy usando Power BI, así que creo que puedo usar ambos. Estoy más familiarizado con DAX.

Así fue importada la columna. Intenté convertir la columna en texto y número entero, pero no encontré la solución. Es una columna numérica por defecto.

dejar
Origen = Carpeta.Archivos(«C:UsuariosjthompsonDocumentosCliente POSC&S»),
#»Invocar función personalizada 1″ = Table.AddColumn(Fuente, «Transformar archivo de C&S», each #»Transformar archivo de C&S»([Content])),
#»Columnas renombradas1″ = Table.RenameColumns(#»Invocar función personalizada1″, {«Nombre», «Fuente.Nombre»}),
#»Otras columnas1 eliminadas» = Table.SelectColumns(#»Cambió el nombre de Columnas1″, {«Fuente.Nombre», «Transformar archivo de C&S»}),
#»Columna de tabla expandida 1″ = Table.ExpandTableColumn(#»Otras columnas eliminadas1″, «Transformar archivo de C&S», Table.ColumnNames(#»Transformar archivo de C&S»(#»Archivo de muestra»))),
#»Filas1 filtradas» = Table.SelectRows(#»Columna1 de la tabla expandida», each ([UPC] <> nulo)),
#»Tipo cambiado» = Table.TransformColumnTypes(#»Filas1 filtradas»,{{«Fuente.Nombre», escriba texto}, {«Cliente», escriba texto}, {«Nombre_proveedor», escriba texto}, {«UPC» , escriba texto}, {«Descripción», escriba texto}, {«Paquete», Int64.Tipo}, {«Tamaño», escriba texto}, {«Cantidad», Int64.Tipo}, {«Costo», escriba número }, {«Last_Yrs_Qty», Int64.Type}, {«Last_Yrs_Cost», escriba el número}, {«MCase», Int64.Type}, {«YYYYMM», Int64.Type}, {«Grp_ID», Int64.Type} }),
#»Filas filtradas» = Table.SelectRows(#»Tipo cambiado», cada uno ([Customer] <> nulo)),
#»Rango de texto extraído» = Table.TransformColumns(#»Filas filtradas», {{«UPC», each Text.Middle(_, 2, 11), type text}}),
#»Valor reemplazado» = Table.ReplaceValue(#»Rango de texto extraído»,»-«,»»,Replacer.ReplaceText,{«UPC»}),
#»Dividir columna por delimitador» = Table.SplitColumn(#»Valor reemplazado», «Fuente.Nombre», Splitter.SplitTextByEachDelimiter({» «}, QuoteStyle.Csv, false), {«Source.Name.1″, » Fuente.Nombre.2″}),
#»Cambiado Tipo1″ = Table.TransformColumnTypes(#»Dividir columna por delimitador»,{{«Fuente.Nombre.1», escriba texto}, {«Fuente.Nombre.2», escriba texto}}),
#»Columnas eliminadas» = Table.RemoveColumns(#»Cambiado Tipo1″,{«Source.Name.2», «Vendor_Name», «Descripción», «Tamaño», «Last_Yrs_Qty», «Last_Yrs_Cost», «MCase», » Grp_ID», «Paquete»}),
#»Columnas renombradas» = Table.RenameColumns(#»Columnas eliminadas»,{{«Cantidad», «Ventas de cajas»}, {«Costo», «Ventas en dólares»}}),
#»Tipo cambiado2″ = Table.TransformColumnTypes(#»Columnas renombradas»,{{«YYYYMM», Int64.Type}})
en
#»Tipo modificado2″

Marcel Beug

En respuesta a jpt1228

Mientras tanto, estaba preparando una respuesta: en Power Query puede agregar el sufijo «01» y luego cambiar el tipo de columna a la fecha.

let
    Source = #table(type table[YYYYMM = text],{{"201709"},{"201710"}}),
    #"Added Suffix" = Table.TransformColumns(Source, {{"YYYYMM", each _ & "01", type text}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Added Suffix",{{"YYYYMM", type date}})
in
    #"Changed Type"

jpt1228

En respuesta a Marcel Beug

@MarcelBeug Lo bueno es que siempre hay muchas formas de resolver el problema. No soy bueno con el código, así que normalmente trato de usar el editor de consultas.

¡Gracias por tu ayuda!

jpt1228

En respuesta a jpt1228

Lo descubrí: convirtió la columna AAAAMM en texto y luego agregó una nueva columna y usó este código.

=Date.FromText(
Text.Range([Input Date as Sting], 0,4) & "-"  &
Text.Range([Input Date as Sting], 4,2)
)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *