Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now

Reply
Syndicate_Admin
Administrator
Administrator

DataFormat.Error: No pudimos analizar la entrada proporcionada como un valor de fecha. Detalles:

En PQ, inició un nuevo origen desde una carpeta con una gran cantidad de archivos de Excel con MMDDYYYY incrustado en sus nombres de archivo.

Después de combinar y transformar, el campo Source.Name incluye MMDDYYYY dentro de los respectivos nombres de archivo de Excel.

Después de agregar una columna personalizada para extraer el MMDDYYYY (a través de Text.Middle([Source.Name], 16, 8)), se deja una columna personalizada Type Any. El error (en la línea de asunto de esta correspondencia) se produce simplemente al intentar transformar a Fecha. Primero transformar a Texto o Número entero no resuelve el problema; tampoco Recortar y/o Limpiar. ¿Alguna idea?

Miré publicaciones anteriores relacionadas con este tema, pero todas son un contexto ligeramente diferente.

Chat GPT no pudo entenderlo. 🙂

Gracias de antemano.

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

Eso es solo infalible qué archivos obtener. Yo u otra persona podríamos guardar erróneamente un archivo no relevante en esas carpetas.

Syndicate_Admin
Administrator
Administrator

Interesante.... Nunca he pensado en importar archivos desde una carpeta con varios archivos, tipos de archivos; Siempre configuro una carpeta / subcarpeta exclusivamente para los archivos importados.

Syndicate_Admin
Administrator
Administrator

Mi estilo, al conectarme a una carpeta, es asegurarme de que estoy obteniendo datos de los archivos correctos, por lo que aplico filtros al nombre del archivo (contiene o comienza con una cadena en particular y no contiene $ ya que este es un archivo temporal) y la extensión. También guardo el nombre del archivo para saber de qué archivo provienen mis datos. Muy útil cuando espero algunos datos para una columna o más con filas en blanco o cuando espero que se cargue este recuento x de archivos pero faltan algunos.

Syndicate_Admin
Administrator
Administrator

Al obtener datos de una carpeta de libros de Excel, independientemente de la estructura subyacente de los libros dentro de la carpeta, el primer par de pasos de PQ son columnas de metadatos que incluyen una columna de origen de los nombres de los libros. La convención de nomenclatura de nombres de archivo de los libros subyacentes dentro de la carpeta es fundamental ya que se incrusta un MMDDYYYY en cada nombre de archivo. Por ejemplo, "FILE05312023", "FILE06302023", etc. La intención de este subproceso era encontrar una manera de extraer el MMDDYYYY de cada nombre de archivo e incluir esta fecha en cada fila de los libros respectivos de la carpeta.

Junto con las columnas de metadatos está la columna Tabla, que es cada libro que se expandirá para incluir todos los campos subyacentes. A continuación se muestra un ejemplo en el que se han eliminado todas las columnas de metadatos excepto las columnas Origen y tabla:

FuenteTransformar archivo
FILE01312023Mesa
FILE02282023Mesa
FILE03312023Mesa
FILE04302023Mesa
FILE05312023Mesa
FILE06302023Mesa


La consulta se vería así después de expandir la tabla:

FuenteCampo 1Campo 2Campo 3
FILE01312023Valor 1Valor 1Valor 1
FILE01312023Valor 2Valor 2Valor 2
FILE01312023Valor 3Valor 3Valor 3
FILE02282023Valor 4Valor 4Valor 4
FILE02282023Valor 5Valor 5Valor 5
FILE02282023Valor 6Valor 6Valor 6
FILE03312023Valor 7Valor 7Valor 7
FILE03312023Valor 8Valor 8Valor 8
FILE03312023Valor 9Valor 9Valor 9
FILE03312023Valor 10Valor 10Valor 10
FILE04302023Valor 11Valor 11Valor 11
FILE05312023Valor 12Valor 12Valor 12
FILE05312023Valor 13Valor 13Valor 13
FILE05312023Valor 14Valor 14Valor 14
FILE06302023Valor 15Valor 15Valor 15
FILE06302023Valor 16Valor 16Valor 16

La intención es agregar una columna personalizada extrayendo la fecha de la columna Origen:

FuenteCampo 1Campo 2Campo 3Fecha
FILE01312023Valor 1Valor 1Valor 11/31/2023
FILE01312023Valor 2Valor 2Valor 21/31/2023
FILE01312023Valor 3Valor 3Valor 31/31/2023
FILE02282023Valor 4Valor 4Valor 42/28/2023
FILE02282023Valor 5Valor 5Valor 52/28/2023
FILE02282023Valor 6Valor 6Valor 62/28/2023
FILE03312023Valor 7Valor 7Valor 73/31/2023
FILE03312023Valor 8Valor 8Valor 83/31/2023
FILE03312023Valor 9Valor 9Valor 93/31/2023
FILE03312023Valor 10Valor 10Valor 103/31/2023
FILE04302023Valor 11Valor 11Valor 114/30/2023
FILE05312023Valor 12Valor 12Valor 125/31/2023
FILE05312023Valor 13Valor 13Valor 135/31/2023
FILE05312023Valor 14Valor 14Valor 145/31/2023
FILE06302023Valor 15Valor 15Valor 156/30/2023
FILE06302023Valor 16Valor 16Valor 166/30/2023

... a continuación, elimine la columna Origen y continúe con los pasos de consulta adicionales.... Espero que esto aclare.

Syndicate_Admin
Administrator
Administrator

¡Gracias! ... finalmente me tomé el tiempo para calcular el código M en el contexto de mi consulta existente.... Aquí está el final de la consulta:

#"Added Custom" = Table.AddColumn(#"Expanded Table Column1", "dt", each Text.BetweenDelimiters([Source.Name], " ", ".x")),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "yr", each Number.From(Text.End([dt],4))),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "mo", each Number.From(Text.Start([dt], 2))),
#"Added Custom3" = Table.AddColumn(#"Added Custom2", "dy", each Number.From(Text.Range([dt],2,2))),
#"Added Custom4" = Table.AddColumn(#"Added Custom3", "Date", each #date([yr],[mo],[dy])),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Agregado personalizado4",{{"Fecha", tipo fecha}}),
#"Columnas eliminadas" = Table.RemoveColumns(#"Tipo cambiado",{"dt", "yr", "mo", "dy"})
en
#"Columnas eliminadas"

.... Datos exportados desde Table Visual:

Fecha
3/21/2022
3/31/2022
4/30/2022
5/31/2022
6/30/2022
7/31/2022
8/31/2022
9/30/2022
10/31/2022
11/30/2022
12/31/2022
1/31/2023
2/28/2023
3/31/2023
4/30/2023
5/31/2023
6/30/2023
7/31/2023
Syndicate_Admin
Administrator
Administrator

No sé lo suficiente sobre el lenguaje M para incrustar lo que tienes en mi consulta existente. Esto es lo que tengo hasta ahora ... ¿Puedes ayudar con la incrustación?

dejar
Origen = Carpeta.Archivos("Carpeta C:\FVE TB"),
#"Archivos ocultos filtrados1" = Table.SelectRows(Origen, cada [Atributos]?[ ¿Oculto]? <> verdadero),
#"Invoke Custom Function1" = Table.AddColumn(#"Archivos ocultos filtrados1", "Transformar archivo (4)", cada #"Transformar archivo (4)"([Contenido])),
#"Renamed Columns1" = Table.RenameColumns(#"Invoke Custom Function1", {"Name", "Source.Name"}),
#"Removed Other Columns1" = Table.SelectColumns(#"Renamed Columns1", {"Source.Name", "Transform File (4)"}),
#"Columna de tabla expandida1" = Table.ExpandTableColumn(#"Otras columnas eliminadas1", "Transformar archivo (4)", Table.ColumnNames(#"Transformar archivo (4)"(#"Archivo de ejemplo (4)")))
en
#"Columna de tabla expandida1"

Syndicate_Admin
Administrator
Administrator

Acabo de probar y esa cadena de texto mmddyyyy no se pudo analizar como una fecha, incluso si agregué una referencia cultural. Prueba esta columna personalizada

let 
dt = Text.BetweenDelimiters([Column1], " ", ".x"),
yr = Number.From(Text.End(dt, 4)),
mo = Number.From(Text.Start(dt, 2)),
dy = Number.From(Text.Range(dt,2,2))
in #date(yr, mo, dy)

danextian_0-1691617785490.png

Syndicate_Admin
Administrator
Administrator

Gracias Danextian, han confirmado que la fecha comienza en 16, y el resultado del campo personalizado es por ejemplo '01312023', extraído del valor 'GL_TrialBalance 01312023.xls' de Source.Name columna.

Tal vez sería mejor crear un campo personalizado Fecha de una sola vez; ¿Extraer y formatear al mismo tiempo, en lugar de crear el campo personalizado de caracteres y luego intentar formatear?

Syndicate_Admin
Administrator
Administrator

Es posible que la fecha comience en 15 y no en 16 o cualquier otro número.

Syndicate_Admin
Administrator
Administrator

@JRParker

Para que sea más fácil de entender y trabajar, por favor comparta su tabla.

Helpful resources

Announcements
November Carousel

Fabric Community Update - November 2024

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

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

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

Top Solution Authors