Resuelto: problemas de Power Query con Power Pivot

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

Contenidos

nivel: intermedio

He escrito un par de publicaciones aquí y aquí sobre los problemas y peligros de usar Power Query con Power Pivot. Bueno, estoy muy contento de decir que Ahora comprendo completamente el problema, cómo se produce y cómo se puede evitar.

Editar: Noviembre 15. Microsoft tiene lanzó una solución para evitar que ocurra este problema.

Primero, una declaración clara del problema

Utiliza Power Query para crear una tabla y cargarla en Power Pivot. Para empezar, solo carga un subconjunto de columnas.

initialdata_thumb-5602656

Todo está bien por un tiempo y creas muchas fórmulas DAX: la vida es dulce. Agrega nuevas filas a su tabla de Power Query y actualiza los datos en Power Pivot, no es una preocupación en el mundo.

refreshdata_thumb-1857571

Entonces, un día, debe realizar un cambio en Power Query (por ejemplo, para traer otra columna de datos que omitió originalmente). Entras en Power Query y haces un cambio en tu tabla para traer una nueva columna.

powerquery-change-6919708

Usted guarda, cierra y carga y luego BAM – obtiene el siguiente mensaje de error temido. Ni siquiera lo viste venir antes de que te golpeara justo entre los ojos.

exception_thumb-8666013

Ocurrió una excepción. (Excepción de HRESULT: 0x80020009 (DISP_E_EXCEPTION))

La única opción ahora es eliminar la tabla de Power Pivot y luego volver a cargarla. Cuando hace esto, pierde todas sus relaciones, todas sus medidas en la tabla, todas sus columnas calculadas que creó en la tabla (no es que deba tener ninguna de esas, ¿verdad?)

¿Qué causa esto?

Es muy fácil evitar que esto suceda si conoce su causa. éste es uno de muchas cosas de gran valor que aprendí en la Conferencia PASS BA en San José en abril de 2015 (en 2 sesiones separadas, una de Chris Webb y otra de Miguel Llopis). Entonces, ¿qué causa el problema? El problema es causado cuando realiza cambios estructurales en la tabla tanto en Power Query como en Power Pivot.

Trabajemos en el problema.

La conexión

Cuando carga por primera vez datos de Power Query en Power Pivot, se crea una ‘conexión’ entre las 2 aplicaciones. Puede ver esta conexión desde dentro de Excel en la pestaña Datos. Vea el ejemplo a continuación. Observe cómo se puede seleccionar la cadena de conexión con el mouse.

connectionstring_thumb-4535013

Entonces, inocentemente, haces un cambio en Power Pivot sin darte cuenta de que es un problema.

Aquí es donde se origina el verdadero problema. Si tu haces CUALQUIER CAMBIO dentro de Power Pivot en la estructura de la tabla de Power Query original, entonces Power Pivot cambie la conexión de «editable» a «solo lectura». Si luego intentas hacer alguna cambios estructurales en Power Query DESPUÉS de que la conexión se establezca en solo lectura, luego se activa este error. Una vez que la conexión es de solo lectura, lo único que puede hacer es «actualizar» el modelo para agregar nuevas filas de datos. No se pueden realizar más cambios estructurales en la tabla en Power Query después de que la conexión se establezca en ‘solo lectura’.

Todos los siguientes cambios en Power Pivot desencadenarán el problema (cuidado, puede haber más).

  1. Cambiar el nombre de la tabla en Power Pivot
  2. Cambiar un nombre de columna importado en Power Pivot
  3. Eliminar una columna en Power Pivot

Tenga en cuenta que está bastante bien crear una columna calculada dentro de Power Pivot (aunque no lo recomendaría, para eso está Power Query).

Y una gran parte del problema es que realiza el cambio dentro de Power Pivot y ni siquiera se da cuenta de que hay un problema; no hay nada que le advierta o le diga que la conexión se ha cambiado a solo lectura. Pueden pasar semanas o meses después de que realice el cambio a Power Query y active el temido mensaje. En este momento, se ha olvidado por completo del cambio que hizo inocentemente en Power Pivot.

Entonces, ¿cómo saber si tiene un problema?

Entonces, cuando llegue a este punto, probablemente se dé cuenta de que es posible que ya tenga un problema que no conoce. Para comprobarlo, debe echar un vistazo a la cadena de conexión entre Power Query y Power Pivot. La forma más fácil de hacer esto es ir a ExcelDataConnectionsPropertiesDefinition y verificar la cadena de conexión (como en el ejemplo de la imagen anterior). Si ve que la cadena de conexión está ‘atenuada’, es decir, no se puede seleccionar y también hay un mensaje que indica que las propiedades no se pueden cambiar, esto confirma que tiene un problema y que ya es demasiado tarde.

connection-string-3231690

Es hora de seguir adelante con confianza

Debo decir que desde que aprendí el problema, me he vuelto a involucrar con Power Query como nunca antes. Ahora uso Power Query con confianza como proveedor de datos de Power Pivot y no he tenido ni una sola instancia de un problema desde entonces. La solución simple es nunca realizar ningún cambio dentro de Power Pivot en una tabla que haya importado de Power Query. Tome esta precaución y nunca más tendrá un problema. Puede realizar todos los cambios que necesita directamente en Power Query siempre que solo use Power Query y nunca realice cambios estructurales en la tabla en Power Pivot. No hay nada que no pueda hacer en Power Query de todos modos, por lo que esto no es una limitación de ninguna manera.

Espero que esta publicación les dé la confianza para hacer lo mismo.

Si desea una lección completa sobre cómo usar Power Query, consulte mi curso de capacitación aquí https://exceleratorbi.com.au/power-query-online-training/

!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘639916389503636’);
fbq(‘track’, ‘PageView’);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.