Compartir a través de


Tratamiento de errores en Power Query

En Power Query, puede encontrar dos tipos de errores:

  • Errores de nivel de etapa
  • Errores a nivel de celda

En este artículo se proporcionan sugerencias sobre cómo corregir 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 a nivel de etapa

Un error a nivel de paso impide que se cargue la consulta y muestra los componentes de error en un panel amarillo.

Captura de pantalla de un error a nivel de paso donde no se encontró una columna.

  • 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 La columna "Columna" de la tabla no se encontró.
  • Detalle del error: sección directamente después de la cadena Details: . En el ejemplo anterior, el detalle del error es Column.

Power Query Online muestra detalles ligeramente diferentes. El detalle del error sigue siendo Column, pero el mensaje de error en línea también contiene el motivo del error (Expression.Error) y el código de error (10224).

Captura de pantalla de un error de nivel de paso en línea en el que no se encontró una columna.

Errores comunes de 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 Mostrar detalles , si está disponible, para mostrar más detalles sobre el error.

Captura de pantalla de un mensaje de error con el botón Mostrar detalles resaltado.

No se encuentra el origen: DataSource.NotFound

Este error se produce normalmente 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 movió a un lugar diferente.

Ejemplo: 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 una clase DataSource.NotFound porque no hay ninguna unidad D en su entorno.

Captura de pantalla de un error de origen de datos que no pudo encontrar el archivo porque no hay ninguna unidad D en el entorno actual.

Posibles soluciones: puede cambiar la ruta de acceso del archivo de texto a una ruta de acceso a la que ambos usuarios tienen acceso. Como usuario B, puede cambiar la ruta de acceso del archivo para que sea una copia local del mismo archivo de texto.

No se encontró la columna de la tabla.

Este error se desencadena normalmente cuando un paso hace una referencia directa a un nombre de columna que no existe en la consulta.

Ejemplo: Tiene una consulta de un archivo de texto donde uno de los nombres de columna era Column. 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 Column porque se cambió manualmente a Date. Power Query no puede encontrar un encabezado de columna denominado Columna, por lo que no puede cambiar el nombre de ninguna columna. Muestra el error que se muestra en la imagen siguiente.

Captura de pantalla de un error de expresión en el que no se encontró la columna de la tabla porque el nombre de la columna se cambió manualmente.

Posibles soluciones: hay varias soluciones para este caso, pero todas dependen de lo que quieras hacer. En este ejemplo, dado que el encabezado de columna Date correcto ya procede del archivo de texto, puede quitar el paso que cambia el nombre de la columna. Este cambio permite que la consulta se ejecute sin este error.

Otros errores comunes de nivel de paso

Al combinar o fusionar datos entre varios orígenes de datos, es posible que reciba un error Formula.Firewall como el que se muestra en la imagen siguiente.

Captura de pantalla de un error de firewall de fórmula que indica que la consulta hace referencia a otras consultas o pasos, por lo que podría no acceder directamente a un origen de datos.

Este error se produce por varias razones, como los niveles de privacidad de datos entre fuentes de datos o la forma en que estas fuentes de datos se combinan o fusionan. Para obtener más información sobre cómo diagnosticar este problema, vaya a Firewall de privacidad de datos.

Error de nivel de celda

Un error de nivel de celda no impide 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.

Captura de pantalla que muestra el mensaje de error seleccionando espacios en blanco en una celda de tabla que contiene un error.

Nota:

Las herramientas de perfilado de datos pueden ayudarle a identificar más fácilmente los errores a nivel de celda utilizando la función de calidad de columna. Para obtener más información, vaya a Herramientas de generación de perfiles de datos.

Control de errores en el nivel de celda

Cuando se producen errores de nivel de celda, Power Query proporciona un conjunto de funciones para controlarlas quitando, reemplazando o manteniendo los errores.

En las secciones siguientes, los ejemplos proporcionados usan la misma consulta de ejemplo que el punto de inicio. En esta consulta, tiene una columna Sales con una celda que presenta un error debido a una conversión incorrecta. 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.

Captura de pantalla que muestra el error de formato de datos, incluyendo el error de que no se pudo convertir al tipo de datos en el panel de errores.

Eliminación de 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.

Captura de pantalla del botón Quitar errores en la pestaña Inicio.

El resultado de esa operación proporciona la tabla siguiente.

Captura de pantalla de la tabla que anteriormente contenía cinco filas ahora tiene la fila que contenía el error quitado, dejando cuatro filas en la tabla.

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.

Captura de pantalla del botón Reemplazar errores en la pestaña Transformar.

En el cuadro de diálogo Reemplazar errores , escriba el valor 10 porque desea reemplazar todos los errores por el valor 10.

Captura de pantalla del cuadro de diálogo de reemplazo de errores con el valor establecido en 10.

El resultado de esa operación proporciona la tabla siguiente.

Captura de pantalla de la tabla en la que la tercera fila contenía un error en la columna Ventas ahora tiene el error reemplazado por el valor 10.

Conservar errores

Power Query puede servir como una buena herramienta de auditoría para identificar las filas con errores, incluso si no corrige los errores. En esta situación, mantener errores puede ser útil. Para mantener las filas que tienen errores, seleccione primero la columna que contiene errores. En la pestaña Inicio , en el grupo Reducir filas , seleccione Mantener filas. En el menú desplegable, seleccione Mantener errores.

Captura de pantalla del botón

El resultado de esa operación proporciona la tabla siguiente.

Captura de pantalla de la tabla final que mantiene solo las filas que contienen errores.

Errores comunes de nivel de celda

Al igual que con cualquier error de nivel de etapa, se recomienda examinar detenidamente los motivos del error, los mensajes de error y los detalles del error proporcionados a nivel de celda para comprender lo que está causando los errores. En las secciones siguientes se describen algunos de los errores de nivel de celda más frecuentes en Power Query.

Errores de conversión de tipos 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: Tiene una consulta que incluye una columna denominada Sales. 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 produce un error.

Captura de pantalla mostrando los detalles del error 'Error al convertir a tipo de datos'.

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 error Replace para proporcionar un valor para los valores na que provocan 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 produce un error.

Ejemplo: quiere crear una columna personalizada para la consulta mediante la creación de una cadena de texto que contenga la frase "Ventas totales: " 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.

Captura de pantalla del error de expresión en el panel de errores causado por intentar aplicar un operador And al texto y un número de la columna Ventas.

Posibles soluciones: antes de crear esta columna personalizada, cambie el tipo de datos de la columna Ventas por texto.

Captura de pantalla de la tabla con la columna sales convertida de un número a un tipo de texto y una nueva columna que contiene ambas expresiones.

Valores anidados que se muestran como errores

Al trabajar con datos que contienen valores estructurados anidados (como tablas, listas o registros), a veces podría producirse el siguiente error:

Captura de pantalla de un error de valores anidados desencadenados por el firewall de fórmulas en curso.

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 escalados se convierten automáticamente en errores.
  • Cuando una columna definida con el Any tipo de datos contiene valores no escalados, estos valores se notifican como errores durante la carga (por ejemplo, en un libro de Excel o en el modelo de datos en Power BI Desktop).

Posibles soluciones:

  • Quite la columna que contiene el error o establezca un tipo de datos diferente para dicha columna.
  • Cambie los niveles de privacidad de los orígenes de datos implicados a uno que permita combinarse sin necesidad de almacenamiento 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).