1. Faro

Nivel 7 · Desafío final: de una exportación desordenada a los ingresos por categoría

La solicitud

De Thomas Whitaker, Director de Merchandising

“Llegó el informe de mitad de mes del marketplace: marketplace_sept_1_15.csv. Antes de la revisión del lunes quiero ingresos y unidades por categoría de esas dos semanas, de mayor a menor. Llegará cada dos semanas de ahora en adelante, así que arma esto una vez y hazlo actualizable. La lista de productos está cargada como una consulta llamada Products.”

Tu objetivo

Paso 1 de 3. Cambia quantity a número entero y unit_price a número decimal. Las líneas de los dos últimos días dicen pending en lugar de un precio y se convierten en errores: quita las filas con un error en unit_price.

  • Muestra exactamente order_id order_date product_id quantity unit_pricependiente
  • 42 filaspendiente

Paso 1 · tu hoja

Excel
La hoja de este nivel
order_idorder_dateproduct_idquantityunit_price
1108092025-09-02145110.99
2108092025-09-02175284.99
3108092025-09-02193119.99
4108192025-09-03171227.99
5108192025-09-03156153.99
6108192025-09-031391189.00
7108192025-09-03121331.99
8108192025-09-031062229.00
9108242025-09-03186120.99
10108292025-09-03133151.99
11108292025-09-03182117.99
12108292025-09-03146116.99
13108302025-09-03142138.99
14108302025-09-03153472.99
15108302025-09-03190343.99
16108302025-09-03141113.99
17108302025-09-03171127.99
18108372025-09-041611219.00
19108372025-09-041731139.00
20108372025-09-04166128.99
21108452025-09-061362159.00
22108452025-09-061261379.00
23108452025-09-06166428.99
24108452025-09-06203253.99
25108452025-09-06171227.99
26108522025-09-061631139.00
27108622025-09-07146116.99
28108622025-09-07154111.99
29108672025-09-08145110.99
30108802025-09-09145110.99
31108912025-09-10164152.99
32108942025-09-10166128.99
33109042025-09-12203153.99
34109042025-09-121191259.00
35109042025-09-12122229.99
36109092025-09-12175184.99
37109092025-09-121941159.00
38109092025-09-12128154.99
39109192025-09-13182217.99
40109192025-09-13185112.99
41109192025-09-13180220.99
42109192025-09-13146416.99
43109292025-09-141221pending
44109332025-09-141562pending
45109342025-09-141783pending
46109372025-09-141351pending
47109372025-09-141701pending
48109532025-09-151111pending

Cargando el editor…

    ResultadoPresiona Comprobar para comparar el resultado de la consulta

    Mote revisa tu resultado

    Presiona Comprobar. Cada fila del resultado que coincide se vuelve una luciérnaga en tu linterna.

    Paso 2 · tu hoja

    Excel
    La hoja de este nivel
    order_idorder_dateproduct_idquantityunit_price
    1108092025-09-02145110.99
    2108092025-09-02175284.99
    3108092025-09-02193119.99
    4108192025-09-03171227.99
    5108192025-09-03156153.99
    6108192025-09-031391189.00
    7108192025-09-03121331.99
    8108192025-09-031062229.00
    9108242025-09-03186120.99
    10108292025-09-03133151.99
    11108292025-09-03182117.99
    12108292025-09-03146116.99
    13108302025-09-03142138.99
    14108302025-09-03153472.99
    15108302025-09-03190343.99
    16108302025-09-03141113.99
    17108302025-09-03171127.99
    18108372025-09-041611219.00
    19108372025-09-041731139.00
    20108372025-09-04166128.99
    21108452025-09-061362159.00
    22108452025-09-061261379.00
    23108452025-09-06166428.99
    24108452025-09-06203253.99
    25108452025-09-06171227.99
    26108522025-09-061631139.00
    27108622025-09-07146116.99
    28108622025-09-07154111.99
    29108672025-09-08145110.99
    30108802025-09-09145110.99
    31108912025-09-10164152.99
    32108942025-09-10166128.99
    33109042025-09-12203153.99
    34109042025-09-121191259.00
    35109042025-09-12122229.99
    36109092025-09-12175184.99
    37109092025-09-121941159.00
    38109092025-09-12128154.99
    39109192025-09-13182217.99
    40109192025-09-13185112.99
    41109192025-09-13180220.99
    42109192025-09-13146416.99
    43109292025-09-141221pending
    44109332025-09-141562pending
    45109342025-09-141783pending
    46109372025-09-141351pending
    47109372025-09-141701pending
    48109532025-09-151111pending

    Cargando el editor…

      ResultadoPresiona Comprobar para comparar el resultado de la consulta

      Mote revisa tu resultado

      Presiona Comprobar. Cada fila del resultado que coincide se vuelve una luciérnaga en tu linterna.

      Paso 3 · tu hoja

      Excel
      La hoja de este nivel
      order_idorder_dateproduct_idquantityunit_price
      1108092025-09-02145110.99
      2108092025-09-02175284.99
      3108092025-09-02193119.99
      4108192025-09-03171227.99
      5108192025-09-03156153.99
      6108192025-09-031391189.00
      7108192025-09-03121331.99
      8108192025-09-031062229.00
      9108242025-09-03186120.99
      10108292025-09-03133151.99
      11108292025-09-03182117.99
      12108292025-09-03146116.99
      13108302025-09-03142138.99
      14108302025-09-03153472.99
      15108302025-09-03190343.99
      16108302025-09-03141113.99
      17108302025-09-03171127.99
      18108372025-09-041611219.00
      19108372025-09-041731139.00
      20108372025-09-04166128.99
      21108452025-09-061362159.00
      22108452025-09-061261379.00
      23108452025-09-06166428.99
      24108452025-09-06203253.99
      25108452025-09-06171227.99
      26108522025-09-061631139.00
      27108622025-09-07146116.99
      28108622025-09-07154111.99
      29108672025-09-08145110.99
      30108802025-09-09145110.99
      31108912025-09-10164152.99
      32108942025-09-10166128.99
      33109042025-09-12203153.99
      34109042025-09-121191259.00
      35109042025-09-12122229.99
      36109092025-09-12175184.99
      37109092025-09-121941159.00
      38109092025-09-12128154.99
      39109192025-09-13182217.99
      40109192025-09-13185112.99
      41109192025-09-13180220.99
      42109192025-09-13146416.99
      43109292025-09-141221pending
      44109332025-09-141562pending
      45109342025-09-141783pending
      46109372025-09-141351pending
      47109372025-09-141701pending
      48109532025-09-151111pending

      Cargando el editor…

        ResultadoPresiona Comprobar para comparar el resultado de la consulta

        Mote revisa tu resultado

        Presiona Comprobar. Cada fila del resultado que coincide se vuelve una luciérnaga en tu linterna.

        La lección

        Una exportación, tres pasos, cada dos semanas

        Este Desafío final es todo el capítulo en una consulta. Thomas quiere ingresos y unidades por categoría, de mayor a menor, cada dos semanas, sin que nadie rehaga el trabajo. Para eso sirve una consulta: los pasos que añades hoy se repiten en cada archivo futuro.

        Como en el resto del capítulo, estás en el editor de práctica, no en Power Query mismo. El punto de partida de cada paso lleva los pasos que ya escribiste, igual que los Pasos aplicados siguen creciendo en Excel.

        El origen tiene 48 líneas del 1 al 15 de septiembre de 2025: order_id, order_date, product_id, quantity y unit_price. La exportación escribió todo como texto, y el marketplace aún no había puesto precio a los dos últimos días, así que 6 líneas dicen pending.

        Paso 1: tipos y errores

        Change type: quantity to whole number
        Change type: unit_price to decimal
        Remove errors: unit_price

        Tras el segundo paso, las 6 celdas pending muestran Error: texto que no puede convertirse en número. En el editor de Excel la barra delgada bajo el encabezado de la columna se pone en parte roja, y al hacer clic en una celda con Error se muestra el motivo (“No se pudo convertir a Número”). Inicio → Quitar filas → Quitar errores descarta esas filas: quedan 42.

        Quitar filas es una decisión, no un trámite. Aquí es lo correcto, porque esas líneas aún no tienen precio y el siguiente informe las incluirá. Dilo en la nota que envíes: “Las líneas del marketplace del 14 y 15 de septiembre aún no tienen precio y están excluidas”. Cuando los errores vienen de un problema de datos (un precio escrito como 12,99), corrige el valor con Reemplazar valores antes de cambiar el tipo en lugar de tirar la línea.

        En M:

        #"Changed Type" = Table.TransformColumnTypes(Source, {{"quantity", Int64.Type}, {"unit_price", type number}}),
        #"Removed Errors" = Table.RemoveRowsWithErrors(#"Changed Type", {"unit_price"})

        Cambia el segundo tipo justo después del primero y Excel pregunta si reemplazar el paso actual o añadir uno nuevo; Reemplazar mantiene ambos en un solo paso, como arriba. El editor de práctica mantiene una línea por columna.

        Paso 2: la búsqueda de categoría

        Merge queries: Products on product_id, expand category

        La exportación solo conoce ids de producto. Products contiene el nombre y la categoría de cada producto que aparece en ella. Una combinación externa izquierda por product_id añade la categoría a cada una de las 42 líneas. Todas coinciden. Una categoría null significaría un producto nuevo que falta en la lista, y sus ingresos caerían en un grupo “null” en el siguiente paso.

        Paso 3: totales por categoría

        Add column: line_total = [quantity] * [unit_price]
        Group by: category | revenue = sum of line_total | units = sum of quantity
        Sort rows: revenue descending

        En Excel: Inicio → Agrupar por → Avanzado, agrupa por category y luego añade una agregación por fila: revenue = Suma de line_total, units = Suma de quantity. El M:

        Table.Group(#"Added Custom", {"category"},
            {{"revenue", each List.Sum([line_total]), type number},
             {"units", each List.Sum([quantity]), Int64.Type}})

        El resultado son seis filas, una por categoría.

        Cárgalo, grafícalo, actualízalo

        Inicio → Cerrar y cargar en… te da a elegir:

        Cargar en Úsalo cuando
        Tabla en una hoja nueva quieres la propia tabla agrupada, para un gráfico o una fórmula
        Informe de tabla dinámica prefieres cargar las 42 líneas y resumirlas en una tabla dinámica (omite Group by)
        Solo crear conexión otra consulta usa esta (como Products aquí)

        Para Thomas, carga la tabla agrupada e inserta un gráfico de barras (Insertar → Gráficos → Barra agrupada) sobre revenue: las categorías son etiquetas largas y las barras se leen mejor ordenadas, algo que la consulta ya hizo. O carga las 42 líneas y arma una tabla dinámica con category en Filas y revenue en Valores; luego añade un gráfico dinámico. Ambos dan los mismos números.

        Dentro de dos semanas, guarda el CSV nuevo sobre el antiguo y pulsa Datos → Actualizar todo. La consulta vuelve a importar, a tipar, quita las nuevas líneas pending, combina y agrupa; la tabla y el gráfico se actualizan. Si el archivo nuevo tiene un producto nuevo, actualiza también Products (Actualizar todo hace ambas cosas).

        ¿Qué puedes concluir?

        Textiles lidera con 1,160.83 de 20 unidades, pero Lighting está solo 11.90 por detrás con 11 unidades: las dos están empatadas a efectos prácticos. Furniture hace 717.00 con solo 3 unidades, y Kitchen vende 17 unidades por 545.83. Ingresos y unidades cuentan historias distintas, así que muestra ambos, y di sobre el gráfico lo que deja fuera (las líneas sin precio).

        Errores comunes

        • Cambiar ambas columnas a decimal: las cantidades deben ser números enteros, y un tipo decimal oculta problemas de datos como 2.5 unidades.
        • Quitar errores en todas las columnas cuando solo se espera que falle unit_price: un problema nuevo en otra parte borraría filas en silencio.
        • Agrupar por unit_price en lugar de line_total: la suma de precios ignora las cantidades.
        • Olvidar el orden: los números son correctos, pero el gráfico se lee en un orden aleatorio.

        Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.