El paso Navegación

Recordemos el código ETL por defecto creado por Power BI para, por ejemplo, la tabla Geography:

let
    Origen = Excel.Workbook(Web.Contents("https://interactivechaos.com/data/curso_m/dataset.xlsx"), null, true),
    Geography_Sheet = Origen{[Item="Geography",Kind="Sheet"]}[Data],
    #"Encabezados promovidos" = Table.PromoteHeaders(Geography_Sheet, [PromoteAllScalars=true]),
    #"Tipo cambiado" = Table.TransformColumnTypes(#"Encabezados promovidos",{{"Geography Id", Int64.Type}, {"Country", type text}, {"Region", type text}, {"City", type text}})
in
    #"Tipo cambiado"

Ya vimos que la primera fórmula de paso

Origen = Excel.Workbook(Web.Contents("https://interactivechaos.com/data/curso_m/dataset.xlsx"), null, true),

devolvía una tabla con metadatos de las tablas identificadas en la fuente de datos (en el libro Excel, en nuestro caso):

Paso "Origen"

Y comentamos en su momento que, en la segunda fórmula de paso (la correspondiente al paso Navegación) se extraía la tabla que nos interesase. En el caso de la consulta Geography, la tabla a extraer es la que se encuentra en la columna Data y fila Geography. Fijémonos en el código que realiza esa extracción:

Geography_Sheet = Origen{[Item="Geography",Kind="Sheet"]}[Data],

Podemos ver que partimos de la tabla Origen y se realiza un filtrado múltiple: en primer lugar, se busca una tabla cuyo nombre sea "Geography" (Item="Geography") y, en segundo lugar, se impone que -en este caso- la tabla en cuestión sea de tipo "Sheet" (Kind="Sheet"). El motivo de este doble filtrado es muy simple: recordemos que en Excel podemos tener dos tipos de tablas: las creadas en una hoja del libro, y aquellas que ocupan un conjunto limitado de celdas que han recibido formato de tabla. Si hubiese una tabla llamada Geography contenida en una hoja del libro, y otra tabla creada dando formato de tabla a un conjunto de celdas que hubiese recibido el mismo nombre Geography, ambas tablas aparecerían como filas distintas en la tabla devuelta por el paso Origen, y si solo buscásemos la tabla que nos interesa por su nombre (columna Item), obtendríamos un error al encontrarse más de una.

Y una vez que hemos seleccionado la fila adecuada con Origen{[Item="Geography",Kind="Sheet"]}, no queda más que extraer el valor de la columna Data.