Power Query es una herramienta poderosa en Excel que permite importar, transformar y limpiar datos de diversas fuentes. En este módulo, exploraremos técnicas avanzadas que te ayudarán a manejar datos complejos y realizar transformaciones sofisticadas.

Contenido

  1. Introducción a Power Query Avanzado
  2. Transformaciones Avanzadas de Datos
  3. Uso de Columnas Personalizadas
  4. Fusión y Anexado de Consultas
  5. Uso de Parámetros en Consultas
  6. Optimización de Consultas
  7. Ejercicios Prácticos

  1. Introducción a Power Query Avanzado

Power Query permite realizar tareas avanzadas de manipulación de datos que van más allá de las transformaciones básicas. Estas técnicas son esenciales para trabajar con grandes volúmenes de datos y realizar análisis complejos.

  1. Transformaciones Avanzadas de Datos

2.1. Dividir Columnas por Delimitadores

Puedes dividir una columna en varias columnas utilizando delimitadores específicos.

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    SplitColumn = Table.SplitColumn(Source, "FullName", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"FirstName", "LastName"})
in
    SplitColumn

2.2. Pivotar y Despivotar Columnas

Pivotar y despivotar columnas es útil para reorganizar datos.

Pivotar Columnas:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    PivotedColumn = Table.Pivot(Source, List.Distinct(Source[Category]), "Category", "Value")
in
    PivotedColumn

Despivotar Columnas:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    UnpivotedColumns = Table.UnpivotOtherColumns(Source, {"ID"}, "Attribute", "Value")
in
    UnpivotedColumns

  1. Uso de Columnas Personalizadas

Las columnas personalizadas permiten crear nuevas columnas basadas en fórmulas.

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    CustomColumn = Table.AddColumn(Source, "FullName", each [FirstName] & " " & [LastName])
in
    CustomColumn

  1. Fusión y Anexado de Consultas

4.1. Fusión de Consultas

La fusión de consultas combina dos tablas basadas en una columna común.

let
    Source1 = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Source2 = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    MergedTables = Table.NestedJoin(Source1, "ID", Source2, "ID", "NewColumn", JoinKind.Inner)
in
    MergedTables

4.2. Anexado de Consultas

El anexado de consultas combina filas de dos o más tablas.

let
    Source1 = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Source2 = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    AppendedTables = Table.Combine({Source1, Source2})
in
    AppendedTables

  1. Uso de Parámetros en Consultas

Los parámetros permiten crear consultas dinámicas que pueden ser reutilizadas con diferentes valores.

let
    Param = Excel.CurrentWorkbook(){[Name="ParameterTable"]}[Content]{0}[Value],
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    FilteredRows = Table.SelectRows(Source, each [Column1] = Param)
in
    FilteredRows

  1. Optimización de Consultas

6.1. Eliminar Columnas No Necesarias

Eliminar columnas innecesarias puede mejorar el rendimiento de las consultas.

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    RemovedColumns = Table.RemoveColumns(Source, {"UnnecessaryColumn1", "UnnecessaryColumn2"})
in
    RemovedColumns

6.2. Filtrar Datos en la Fuente

Filtrar datos en la fuente reduce la cantidad de datos que se importan y procesan.

let
    Source = Sql.Database("ServerName", "DatabaseName"),
    FilteredData = Table.SelectRows(Source, each [Date] >= #date(2023, 1, 1))
in
    FilteredData

  1. Ejercicios Prácticos

Ejercicio 1: Dividir Nombres Completo

Objetivo: Dividir una columna de nombres completos en nombres y apellidos.

Instrucciones:

  1. Crea una tabla con una columna "FullName" que contenga nombres completos.
  2. Usa Power Query para dividir la columna en "FirstName" y "LastName".

Solución:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    SplitColumn = Table.SplitColumn(Source, "FullName", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"FirstName", "LastName"})
in
    SplitColumn

Ejercicio 2: Fusionar Tablas

Objetivo: Fusionar dos tablas basadas en una columna común.

Instrucciones:

  1. Crea dos tablas con una columna común "ID".
  2. Usa Power Query para fusionar las tablas en una sola.

Solución:

let
    Source1 = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    Source2 = Excel.CurrentWorkbook(){[Name="Table2"]}[Content],
    MergedTables = Table.NestedJoin(Source1, "ID", Source2, "ID", "NewColumn", JoinKind.Inner)
in
    MergedTables

Conclusión

En esta sección, hemos explorado técnicas avanzadas de Power Query que te permitirán manejar y transformar datos de manera más eficiente y efectiva. Estas habilidades son esenciales para cualquier analista de datos que trabaje con grandes volúmenes de información y necesite realizar análisis complejos. En el próximo módulo, profundizaremos en la integración de Excel con otras herramientas avanzadas.

Dominar Excel: De Principiante a Avanzado

Módulo 1: Introducción a Excel

Módulo 2: Funciones Básicas de Excel

Módulo 3: Habilidades Intermedias de Excel

Módulo 4: Fórmulas y Funciones Avanzadas

Módulo 5: Análisis y Visualización de Datos

Módulo 6: Gestión Avanzada de Datos

Módulo 7: Automatización y Macros

Módulo 8: Colaboración y Seguridad

Módulo 9: Integración de Excel y Herramientas Avanzadas

© Copyright 2024. Todos los derechos reservados