Miguel Escobar Publicada diciembre 7, 2018

El paso de navegación en Power Query y Power BI: navegación en filas, columnas y celdas

Power BIPower BIPower QueryPower Query

¿Qué es un paso de «Navegación» en Power Query?

GIF Navigation

Al usar Power Query, es posible que hayas encontrado un paso que dice «Navegación» y que Power Query crea automáticamente por ti, pero…¿qué hace?

Bueno, si nos fijamos en el código que se creó para el paso de navegación, se lee:

= Source{[Item=»SalesTable»,Kind=»Table»]}[Data]

Tiene algunas llaves mezcladas con algunos corchetes y una nomenclatura que parece bastante extraña al principio. Esta es una de las formas en que Power Query crea automáticamente un paso de navegación, pero hay otras formas para lograr el mismo resultado y, dependiendo de la situación, Power Query puede crear un código diferente.

Esta es la razón principal por la que estoy escribiendo esta publicación. Es decir, para documentar cuáles son las formas que tiene Power Query para navegar hacia una columna, fila o incluso hacia una celda específica.

Algunos recursos que podrían ayudarte a comprender mejor el lenguaje de fórmulas de Power Query también conocido como idioma M:

Tipos de Navegación dentro de Power Query

Hay 3 tipos de navegación dentro de Power Query, pero para cada tipo hay diferentes métodos que puedes usar. En esta publicación del blog nos centraremos en lo básico para que puedas comprender mejor todo el concepto de navegación.

B

Antes de seguir adelante, te recomiendo que descargues los archivos de muestra para que puedas seguirlos. Haz clic en el botón a continuación para que puedas descargar las muestras que utilizo en este artículo:

Una vez que descargues los archivos, abre un nuevo libro en Excel o un informe en blanco dentro de Power BI Desktop y conéctalo al archivo ‘Source Data.xlsx’. A continuación, conéctate específicamente a la tabla ‘SalesTable’. El resultado de esa operación será el siguiente:

image

Navegación en columnas

Basándonos en el resultado que se muestra en la imagen anterior, que es una tabla, si quisiéramos navegar hasta una columna específica, todo lo que tendríamos que hacer es simplemente hacer clic derecho en una de las columnas y seleccionar la opción «Drill Down»

image

cuando hagas clic en ese botón, un nuevo paso será creado y te mostrará una Lista.

image

Cuando extraes una columna de una tabla, ésta se transforma en una Lista.

Presta atención al código que se creó para nosotros. El formato es #»Nombre del paso anterior» [NombreDeColumna] y esto funciona en este caso porque se usa contra una tabla, por lo que #»Nombre del paso anterior» es una tabla.

Power Query también tiene una función para esto, la cual se llama Table.Column. Puedes obtener más información acerca de esa función aquí, pero es mucho más fácil hacerlo a través de la interfaz de usuario y con solo unos pocos clics.

Ya que los datos están ahora en una lista, podemos usar la función List functions en ella, pero eso es algo que abordaré en otra publicación del blog.

Navegación en celdas

¿Qué pasa si quieres navegar a una celda específica? Usando el resultado de la imagen anterior donde teníamos una lista. También puedo hacer clic derecho en cualquier celda y así también veré la opción «Drill Down». ¡Eso es GENIAL!

image

Una vez que hacemos clic en ella, Power Query profundizará o navegará a esa celda específica y el resultado se verá algo así:

image

En nuestro caso, este valor de celda es un valor de Texto, por eso obtenemos el menú contextual de herramientas de texto en la cinta, pero debes prestar mucha atención a la barra de fórmulas y al código que Power Query creó automáticamente para nosotros.

Este código específico tiene el formato de NombreDelPaso{ÍndiceDePosiciónDeFila} y este ÍndiceDePosiciónDeFila específico es generado automáticamente por Power Query. Power Query tiene su propio índice y comienza desde 0, por lo que si intentas obtener la primera fila de una lista o una tabla, debes usar {0}.

Lo bueno es que no necesariamente tienes que estar en una lista para tener la opción de Cell Drill down o Navigation. Puedes hacerlo en una tabla o incluso en un registro y obtendrás la opción Drill Down como se muestra a continuación

image

Nota: Nuevamente, este es solo uno de los métodos disponibles para que puedas lograr una navegación a nivel de las celdas

Navegación en filas

¿Qué sucede si queremos obtener una fila completa de una tabla? Existen varios métodos para lograr esto, pero usemos el que aprendimos en la navegación en CELDAS.

Cuando hagas clic en una fila, notarás que el panel de vista previa debajo te muestra lo que parece ser un registro, y eso se debe a que la fila de una tabla es esencialmente un registro.

image

El único inconveniente aquí es que no puedes hacer clic derecho en una fila, por lo que vamos a utilizar un código M personalizado para navegar a la primera fila de esta tabla. Para eso, haz clic en el icono fx en la barra de fórmulas que creará un nuevo paso personalizado que debería llamarse «Custom1» y que simplemente hace referencia al paso anterior. Luego simplemente modificaremos la fórmula dentro de ese paso para que sea

= #»Changed Type»{0}

image

observa que la parte importante aquí son las llaves y el número dentro de las llaves, que es 0 (porque queremos la primera fila).

Conclusión

Un agradecimiento especial al usuario «Thunderlight» por haber hecho que me fijara en este asunto en el foro oficial de Microsoft Power Query aquí.

Nuevamente, hay otros métodos para la mayoría de las navegaciones que he presentado aquí y espero que esta publicación del blog sea un buen comienzo para que descubras la navegación dentro de Power Query. Si deseas aprender TODO sobre Power Query, su código M e incluso todos los métodos que puedes utilizar para hacer navegaciones en Power Query, te invito a que te unas a nuestra Power Query Academy, donde tenemos una sección completa dedicada a esto con muchos ejemplos prácticos e interesantes.

Power BIPower BIPower QueryPower Query
Subscribe
Notify of
guest
0 Comentario
Oldest
Newest Most Voted
Inline Feedbacks
View all comments