Cómo tratar los errores en Power Query
En Power Query, puede encontrar dos tipos de errores:
- Errores en el nivel de paso
- Errores en el nivel de celda
En este artículo se proporcionan sugerencias sobre cómo solucionar los errores más comunes que puede encontrar en cada nivel y se describe el motivo del error, el mensaje de error y los detalles de cada uno de ellos.
Error en el nivel de paso
Un error en el nivel de paso impide que la consulta se cargue y muestra los componentes del error en un panel amarillo.
- Motivo del error: primera sección antes de los dos puntos. En el ejemplo anterior, el motivo del error es Expression.Error.
- Mensaje de error: la sección directamente después del motivo. En el ejemplo anterior, el mensaje de error es The column 'Column' of the table wasn't found (No se ha encontrado la columna 'Columna' de la tabla).
- Detalle del error: sección directamente después de la cadena Details:. En el ejemplo anterior, el detalle del error es Column (Columna).
Errores comunes en el nivel de paso
En todos los casos, se recomienda echar un vistazo al motivo del error, el mensaje de error y los detalles del error para comprender lo que está causando el error. Puede seleccionar el botón Ir al error, si está disponible, para ver el primer paso donde se ha producido el error.
No se encuentra el origen - DataSource.Error
Este error suele producirse cuando el usuario no puede acceder al origen de datos, el usuario no tiene las credenciales correctas para acceder al origen de datos o el origen se ha movido a un lugar diferente.
Ejemplo: supongamos que tiene una consulta de un icono de texto que se encuentra en la unidad D y que creó el usuario A. El usuario A comparte la consulta con el usuario B, que no tiene acceso a la unidad D. Cuando esta persona intenta ejecutar la consulta, obtiene un DataSource.Error porque no hay ninguna unidad D en su entorno.
Posibles soluciones: puede cambiar la ruta del archivo de texto a una ruta a la que ambos usuarios tengan acceso. Como usuario B, puede cambiar la ruta del archivo para que sea una copia local del mismo archivo de texto. Si el botón Editar configuración está disponible en el panel de errores, puede seleccionarlo y cambiar la ruta del archivo.
No se ha encontrado la columna de la tabla
Este error se suele desencadenar cuando un paso hace una referencia directa a un nombre de columna que no existe en la consulta.
Ejemplo: supongamos que tiene una consulta de un archivo de texto donde uno de los nombres de columna era Columna. En la consulta, tiene un paso que cambia el nombre de esa columna a Fecha. Pero hubo un cambio en el archivo de texto original y ya no tiene un encabezado de columna con el nombre Columna porque se cambió manualmente a Fecha. Power Query no puede encontrar un encabezado de columna llamado Columna, por lo que no puede cambiar el nombre de ninguna columna. Muestra el error que se indica en la siguiente imagen.
Posibles soluciones: hay varias soluciones para este caso, pero todas dependen de lo que desea hacer. En este ejemplo, dado que el encabezado de columna Fecha correcto ya procede del archivo de texto, puede eliminar el paso que cambia el nombre de la columna. Esto permitirá que la consulta se ejecute sin este error.
Otros errores comunes en el nivel de paso
Al combinar o fusionar datos entre varios orígenes de datos, es posible que reciba un error de Formula.Firewall, como el que se muestra en la imagen siguiente.
Este error puede deberse a varios motivos, como los niveles de privacidad de los datos entre orígenes de datos o la forma en que se combinan o fusionan estos orígenes de datos. Para obtener más información sobre cómo diagnosticar este problema, vaya a Firewall de privacidad de datos.
Error en el nivel de celda
Un error en el nivel de celda no impedirá que la consulta se cargue, pero muestra valores de error como Error en la celda. Al seleccionar el espacio en blanco en la celda se muestra el panel de errores debajo de la vista previa de datos.
Nota:
Las herramientas de generación de perfiles de datos pueden ayudarle a identificar más fácilmente los errores en el nivel de celda con la característica de calidad de las columnas. Más información: Herramientas de generación de perfiles de datos
Manejo de errores en el nivel de celda
Al encontrar errores en el nivel de celda, Power Query proporciona un conjunto de funciones para manejarlos mediante la eliminación, sustitución o mantenimiento de los errores.
En las siguientes secciones, los ejemplos que se ofrecen utilizarán la misma consulta de ejemplo como punto de partida. En esta consulta, tiene una columna de Ventas que tiene una celda con un error causado por un error de conversión. El valor dentro de esa celda era NA, pero cuando transformó esa columna en un número entero, Power Query no pudo convertir NA en un número, por lo que muestra el siguiente error.
Quitar errores
Para quitar filas con errores en Power Query, seleccione primero la columna que contiene errores. En la pestaña Inicio, en el grupo Reducir filas, seleccione Quitar filas. En el menú desplegable, seleccione Quitar errores.
El resultado de esta operación le proporcionará la tabla que está buscando.
Reemplazar errores
Si en lugar de quitar filas con errores, quiere reemplazar los errores por un valor fijo, también puede hacerlo. Para reemplazar las filas que tienen errores, seleccione primero la columna que contiene errores. En la pestaña Transformar, en el grupo Cualquier columna, seleccione Reemplazar valores. En el menú desplegable, seleccione Reemplazar errores.
En el cuadro de diálogo Reemplazar errores, escriba el valor 10 porque desea reemplazar todos los errores por el valor 10.
El resultado de esta operación le proporcionará la tabla que está buscando.
Conservar los errores
Power Query puede servir como una buena herramienta de auditoría para identificar cualquier fila con errores, incluso si no corrige los errores. Aquí es donde Conservar errores puede ser útil. Para conservar las filas que tienen errores, seleccione primero la columna que contiene errores. En la pestaña Inicio, en el grupo Reducir filas, seleccione Conservar filas. En el menú desplegable, seleccione Conservar errores.
El resultado de esta operación le proporcionará la tabla que está buscando.
Errores comunes en el nivel de celda
Al igual que con cualquier error en el nivel de paso, le recomendamos que examine detenidamente los motivos de error, los mensajes de error y los detalles de error proporcionados en el nivel de celda para comprender la causa de los errores. En las secciones siguientes se describen algunos de los errores en el nivel de celda más frecuentes en Power Query.
Errores de conversión de tipo de datos
Se desencadena normalmente al cambiar el tipo de datos de una columna de una tabla. Algunos valores encontrados en la columna no se pudieron convertir al tipo de datos deseado.
Ejemplo: supongamos que tiene una consulta que incluye una columna llamada Ventas. Una celda de esa columna tiene NA como valor de celda, mientras que el resto tiene números enteros como valores. Decide convertir el tipo de datos de la columna de texto a número entero, pero la celda con el valor NA genera un error.
Posibles soluciones: después de identificar la fila con el error, puede modificar el origen de datos para reflejar el valor correcto en lugar de NA o bien puede aplicar una operación de Reemplazar error para proporcionar un valor para los valores de NA que generan un error.
Errores de operación
Al intentar aplicar una operación que no se admite, como multiplicar un valor de texto por un valor numérico, se genera un error.
Ejemplo: supongamos que quiere crear una columna personalizada para la consulta mediante la creación de una cadena de texto que contenga la frase "Total de ventas:" concatenada con el valor de la columna Ventas. Se produce un error porque la operación de concatenación solo admite columnas de texto y no numéricas.
Posibles soluciones: antes de crear esta columna personalizada, cambie el tipo de datos de la columna Ventas por texto.
Valores anidados que se muestran como errores
Al trabajar con datos que contienen valores estructurados anidados (como tablas, listas o registros), a veces puede producirse el siguiente error:
Expression.Error: We cannot return a value of type {value} in this context
Details: In the past we would have returned a text value of {value}, but we now return this error. Please see https://go.microsoft.com/fwlink/?linkid=2099726 for more information.
Estos errores suelen producirse por dos motivos:
- Cuando el firewall de privacidad de datos almacena en búfer un origen de datos, los valores anidados no escalares se convierten automáticamente en errores.
- Cuando una columna definida con el tipo de datos
Any
contiene valores no escalares, estos valores se notificarán como errores durante la carga (como en un libro en Excel o el modelo de datos en Power BI Desktop).
Posibles soluciones:
- Quite la columna que contiene el error o establezca un tipo de datos distinto de
Any
para dicha columna. - Cambie los niveles de privacidad de los orígenes de datos implicados a uno que les permita combinarse sin almacenarse en búfer.
- Aplane las tablas antes de realizar una combinación para eliminar las columnas que contienen valores estructurados anidados (como tabla, registro o lista).