Faltan columnas de los datos importados de Excel

Un usuario Pregunto ✅

NJS0303

Hola,

Estoy buscando ayuda con un problema que tengo con los datos importados de Excel.

Tengo varios informes vinculados a aproximadamente una docena de hojas de Excel diferentes y, sin ninguna causa obvia, a algunas de las hojas les faltan columnas cuando se importan a Power BI. Como ejemplo, un archivo tiene 17 columnas, pero una vez importado, falta la columna final y falla con una Expresión. Error: no se encontró la ‘columna 17’ de la tabla:

Source = Excel.Workbook(File.Contents("\absvapp036citrent01 - ESS Mileage.xlsx"), null, true),
#"001 - ESS Mileage - Claim_Sheet" = Source{[Item="001 - ESS Mileage - Claim",Kind="Sheet"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(#"001 - ESS Mileage - Claim_Sheet",{{"Column1", type any}, {"Column2", type any}, {"Column3", type text}, {"Column4", type any}, {"Column5", type any}, {"Column6", type any}, {"Column7", type any}, {"Column8", type text}, {"Column9", type any}, {"Column10", type text}, {"Column11", type any}, {"Column12", type text}, {"Column13", type any}, {"Column14", type any}, {"Column15", type any}, {"Column16", type any}, {"Column17", type text}}),

He estado agregando columnas en blanco en los informes de origen para intentar solucionar esto, pero esta no es una solución ideal, ya que no siempre funciona y ahora me preocupa que a la consulta de importación también le falten otros datos.

He estado en Internet tratando de encontrar una solución para esto y probé todas las soluciones que pude encontrar, por ejemplo, actualizar la caché, actualizar la vista previa, crear una nueva consulta, etc. pero nada parece evitar que una columna sea ignorada por el proceso de importación. ¿Debería / podría usar M directamente para extraer todas las columnas en lugar de depender del editor y, de ser así, alguien puede ayudarme con el código a usar?

¡Cualquier ayuda / consejo será muy apreciado!

Jimmy801

Hola NJS0303

Conozco este problema por mí mismo.

cuando lee datos con Excel.Workbook y lee una tabla (hoja) SIEMPRE se lee el RANGO DE UTILIZACIÓN de esta hoja.

Por lo tanto, asegúrese de que todas sus hojas / archivos tengan el mismo conjunto de rango usado (comenzando siempre en la ColumnaA y terminando en la misma columna; de lo contrario, las funciones que no se apliquen dinámicamente se bloquearán). Esto resolverá tu problema

Divertirse

Palanqueta

NJS0303

En respuesta a Jimmy801

Hola @ Jimmy801,

Es reconfortante saber que no soy la única persona que tiene este problema y agradezco que se haya tomado el tiempo de responder.

He investigado un poco más sobre UsedRange, pero no he descubierto cómo aplicar esto en mi caso particular. ¿Se debe realizar algún ajuste en el Editor avanzado de Power BI o tengo que hacerlo en el lado de Excel? Si es el primero, ¿podría proporcionar un ejemplo usando mi código de muestra?

Jimmy801

En respuesta a NJS0303

Hola

esto no tiene nada que ver con la consulta de energía

esto es solo una cuestión de configuración en Excel.

El USEDRANGE es un objeto de solo lectura que es determinado por Excel, si se usa un rango.

Te escribiré un código VBA para leer este objeto. Puede pegar esto en sus archivos y verificar si los rangos usados ​​son los mismos. Además, siempre es peligroso usar un enfoque no dinámico cuando se trabaja con datos no estructurados como Excel Table. RemoveColumns (Table, {«Column16»}) puede conducir a un resultado inesperado, ya que Column16 puede no existir o no contener los datos que usted está esperando (como vio en su ejemplo, los rangos usados ​​pueden no ser idénticos, incluso si lo ha diseñado así, tal vez usado cambió algo)

Aquí ahora el código VBA para verificar

sub checkUsedRange ()

dim ws como hoja de trabajo

para cada ws en este libro de trabajo.

debug.print ws.name & «-» & ws.usedrange.address

próxima ws

end sub

divertirse

Palanqueta

NJS0303

En respuesta a Jimmy801

Eso es fantástico @ Jimmy801, gracias por tomarse el tiempo para hacer eso.

Verifiqué el rango usado de mi hoja de cálculo de ejemplo y reporta A1: D18822 que es correcto, pero Power BI esencialmente está importando A1: C18822. Empiezo a sospechar que esto se debe al conector de la carpeta de SharePoint, ya que cuando importo la misma hoja de cálculo con el conector estándar de Excel A: D No tengo el problema de la columna que falta.

Jimmy801

En respuesta a NJS0303

Hola @ NJS0303

¿Y tu problema?

Si mis publicaciones lo hicieran ayuda tu o resuelto su problema, márquelo como solución.
Felicitaciones son agradables – gracias
Divertirse

Palanqueta

NJS0303

En respuesta a Jimmy801

Hola @ Jimmy801

Lo siento (de nuevo) por la demora en responder.

Finalmente pude identificar qué está causando el problema, es decir, hay una emisión conocida con los informes .xlsx de SAP Web Intelligence en términos de cómo los lee Power BI:

https://apps.support.sap.com/sap/support/knowledge/preview/en/2853508

No tengo acceso completo a la base de conocimientos de SAP, por lo que estoy operando con información limitada en este momento. Intentaré averiguar más, pero espero que alguien que lea esto tenga acceso a la base de conocimientos y pueda compartir el artículo completo.

Jimmy801

En respuesta a NJS0303

Hola @ NJS0303

Tuvimos un problema similar con el archivo xlsx de SAP debido a un problema XLM. Descargue la versión xls o csv simple (siempre sería mejor usar archivos txt o csv para las interfaces). Entonces debería funcionar

Si esta publicación ayuda o resuelve su problema, márquelo como solución.
Felicitaciones son agradables – gracias
Divertirse

Palanqueta

Jimmy801

En respuesta a NJS0303

Hola

¿Podrías publicar el archivo y el código M?

Gracias

Palanqueta

az38

hola @ NJS0303

muéstrenos, por favor, todo el código fuente de la ventana del Editor avanzado

NJS0303

En respuesta a az38

Hola @ az38,

Disculpas por la demora en responder; consulta a continuación la información solicitada:

let
    Source = SharePoint.Files("https://redacted.sharepoint.com/sites/MidlandTransfer", [ApiVersion = 15]),
    #"005-UserStructure_ITRENT-PBI xlsx_https://redacted sharepoint com/sites/MidlandTransfer/Shared Documents/ITRENT-PBI/" = Source{[Name="005-UserStructure_ITRENT-PBI.xlsx",#"Folder Path"="https://redacted.sharepoint.com/sites/MidlandTransfer/Shared Documents/ITRENT-PBI/"]}[Content],
    #"Imported Excel" = Excel.Workbook(#"005-UserStructure_ITRENT-PBI xlsx_https://redacted sharepoint com/sites/MidlandTransfer/Shared Documents/ITRENT-PBI/"),
    UserStructure_Sheet = #"Imported Excel"{[Item="UserStructure",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(UserStructure_Sheet, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"User Login", type text}, {"Level3:Structure", type text}, {"Level4:Structure", type text}})
in
    #"Changed Type"

.

Este ejemplo se toma de un archivo de Excel de 4 columnas que se importa a Power BI solo con las primeras 3 columnas.

Deja un comentario

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