1. Faro

Nivel 4 · Combina una tabla de descuentos y luego calcula el precio de cada línea

La solicitud

De Chloe Gutierrez, Ejecutiva de cuentas

“Algunas cuentas empresariales tienen descuentos por contrato, y están en contract_discounts.xlsx (lo cargué como una consulta llamada Discounts). ¿Puedes aplicarlos a los pedidos web empresariales del 1 al 10 de septiembre para que vea lo que realmente factura cada línea? Las cuentas que no están en la lista pagan precio completo.”

Tu objetivo

Combina la consulta Discounts por customer_code y expande su columna discount. Los clientes que no están en la lista reciben null: reemplaza esos null por 0. Luego añade total_after_discount = line_total × (1 − discount).

  • Muestra exactamente order_id order_date customer_code product line_total discount total_after_discountpendiente
  • 25 filaspendiente

Tu hoja

Excel
La hoja de este nivel
order_idorder_datecustomer_codeproductline_total
1108102025-09-02C01335Vale Enamel Bowl Set11.99
2108102025-09-02C01335Spruce Wool Duvet Cover267.96
3108102025-09-02C01335Sable Concrete Adirondack Chair101.98
4108162025-09-03C00528Nantucket Brass Wall Mirror53.97
5108402025-09-04C01355Sable Linen Table Lamp92.99
6108402025-09-04C01355Fairhaven Stoneware Cutting Board425.94
7108492025-09-06C00012Bramble Ceramic Floor Lamp31.99
8108492025-09-06C00012Birch Brass Floor Mirror167.92
9108492025-09-06C00012Thatcher Oak Candle35.98
10108492025-09-06C00012Harbor Wool Knit Throw231.92
11108552025-09-07C01334Vale Enamel Bowl Set11.99
12108552025-09-07C01334Harbor Wool Knit Throw463.84
13108552025-09-07C01334Pine Cotton Area Rug1112
14108582025-09-07C00026Harbor Wool Knit Throw86.97
15108582025-09-07C00026Sable Concrete Adirondack Chair50.99
16108582025-09-07C00026Dune Black Metal Floor Lamp207.96
17108582025-09-07C00026Delancey Black Metal Wall Sconce109.98
18108592025-09-07C01404Willow Acacia Knife Block107.98
19108592025-09-07C01404Bramble Percale Quilt417
20108592025-09-07C01404Rowan Ceramic Chandelier1134
21108592025-09-07C01404Delancey Brass Vase79.96
22108852025-09-09C00607Cove Wool Lumbar Pillow105.98
23108852025-09-09C00607Vale Enamel Bowl Set23.98
24108852025-09-09C00607Cedar Cast Iron Tumbler Set159.98
25108852025-09-09C00607Bramble Percale Quilt417

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

    En una hoja de cálculo traes un valor de otra tabla con XLOOKUP o VLOOKUP, una fórmula por fila. Power Query hace el mismo trabajo para toda la tabla de una vez con Combinar consultas. La lista de descuentos de Chloe es una segunda consulta; las líneas de pedido son la primera. Combinar las empareja por el código de cliente.

    Dos consultas, una clave

    Las líneas de pedido tienen 25 filas de 8 clientes empresariales. La consulta Discounts tiene 6 filas:

    customer_code discount
    C01335 0.10
    C01355 0.05
    C00012 0.10
    C01404 0.05
    C00288 0.10
    C00534 0.05

    Cuatro de estos clientes hicieron pedidos del 1 al 10 de septiembre. C00288 y C00534 están en la lista pero no hicieron pedidos, lo cual es normal: una tabla de búsqueda puede contener claves que no vas a necesitar. Cuatro clientes que sí pidieron (C00528, C01334, C00026, C00607) no tienen contrato.

    Merge queries: Discounts on customer_code, expand discount

    En Excel: Inicio → Combinar consultas, elige Discounts en el segundo menú desplegable, haz clic en customer_code en ambas tablas, deja el Tipo de combinación: Externa izquierda (todas las de la primera, las coincidentes de la segunda), Aceptar. Power Query añade una columna llena de valores Table; haz clic en el icono de expandir de su encabezado, marca discount, desmarca “Usar el nombre de columna original como prefijo”, Aceptar.

    Externa izquierda: cada línea se queda

    Una unión externa izquierda conserva cada fila de la primera consulta. Cuando una clave no tiene coincidencia, las columnas nuevas son null, el valor vacío de Power Query. Es la misma situación que un XLOOKUP que devuelve #N/A, salvo que null no grita. Aquí 12 de las 25 líneas vuelven con un descuento null.

    La coincidencia es exacta y distingue mayúsculas: c01335 no encontraría C01335, y un código con un espacio al final tampoco. Cuando una combinación encuentra menos coincidencias de las que esperas, revisa las claves con pasos de Recortar y Mayúsculas en ambos lados. El cuadro Combinar ayuda: abajo dice cuántas filas coincidieron (“La selección coincide con 13 de 25 filas”).

    Null no es cero

    Replace values: discount null with 0

    En M, la aritmética con null da null: 100 * (1 - null) es null, no 100. Así que antes del total, convierte “sin contrato” en un 0 explícito. En Excel: selecciona la columna discount, Transformar → Reemplazar valores, Valor que buscar null, Reemplazar con 0.

    Add column: total_after_discount = [line_total] * (1 - [discount])

    En la primera línea, el Vale Enamel Bowl Set de C01335: 11.99 × (1 − 0.10) = 10.79. En el pedido 10816, C00528 no tiene contrato, así que la línea conserva sus 53.97.

    El M detrás de los pasos

    #"Merged Queries" = Table.NestedJoin(Source, {"customer_code"}, Discounts, {"customer_code"},
        "Discounts", JoinKind.LeftOuter),
    #"Expanded Discounts" = Table.ExpandTableColumn(#"Merged Queries", "Discounts", {"discount"}, {"discount"}),
    #"Replaced Value" = Table.ReplaceValue(#"Expanded Discounts", null, 0, Replacer.ReplaceValue, {"discount"}),
    #"Added Custom" = Table.AddColumn(#"Replaced Value", "total_after_discount", each [line_total] * (1 - [discount]))

    Una combinación son dos pasos en Excel real, la unión y la expansión. Este editor de práctica los junta en una sola línea.

    Errores comunes

    • Saltarse el reemplazo de null. 12 líneas reciben un total null, y toda suma construida sobre ellas queda demasiado baja.
    • Elegir unión interna (Inner). Conserva solo las 13 líneas con contrato y descarta en silencio el resto de los pedidos.
    • Claves duplicadas en la tabla de búsqueda. Si un cliente apareciera dos veces en Discounts, Power Query repetiría las líneas de pedido de ese cliente una vez por coincidencia. (Este editor de práctica toma la primera coincidencia; Excel real duplica filas.) Quita antes los duplicados de la clave en la consulta de búsqueda.
    • Escribir el descuento como 10 en lugar de 0.10. 1 - 10 es −9. Sabe si una tasa es una fracción o un porcentaje antes de multiplicar.

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