1. Faro

Nivel 2 · De líneas de pedido a totales por pedido con SUMIF

La solicitud

De Amanda Perez, Contadora

“Estoy conciliando noviembre contra el procesador de pagos, y este informa un importe por pedido, no por línea. El mes completo son 1,600 líneas, así que pegué el lunes 17 de noviembre (54 líneas, 23 pedidos) para probar. ¿Puedes darme el total neto de cada pedido?”

Tu objetivo

En F2:F55, calcula el total neto de cada línea: quantity × unit_price × (1 − discount_pct ÷ 100). Luego en I2:I24, junto a cada order_id de la columna H, suma los totales de línea de ese pedido con SUMIF sobre la columna A. Bloquea los dos rangos con $ para que la fórmula se pueda rellenar hacia abajo.

  • Llena F2:F55, I2:I24 con los valores correctospendiente
  • Con fórmulas, no con números escritospendiente
  • Usa SUMIFpendiente

Tu hoja

Excel
La hoja de este nivel
ABCDEFGHIJ
1order_idcategoryquantityunit_pricediscount_pctline_total order_idorder_total
211826Lighting1159.00011826
311826Textiles128.99011827
411827Decor1149.00011828
511828Textiles152.99011829
611829Textiles1139.001011830
711829Textiles130.991011831
811829Textiles3159.001011832
911830Decor119.99011833
1011830Decor312.99011834
1111831Furniture2169.00011835
1211831Textiles184.99011836
1311832Furniture3169.00011837
1411832Textiles2139.00011838
1511832Lighting1189.00011839
1611833Lighting192.99011840
1711834Lighting2349.00011841
1811834Decor220.99011842
1911835Kitchen116.99011843
2011835Textiles1139.00011844
2111835Textiles252.99011845
2211836Textiles370.99011846
2311836Kitchen2289.00011847
2411836Textiles1169.00011848
2511836Kitchen116.990
2611837Lighting492.990
2711837Textiles3169.000
2811837Textiles220.990
2911837Decor276.990
3011837Textiles818.990
3111838Decor215.990
3211839Textiles128.990
3311840Decor1104.990
3411840Kitchen170.990
3511841Decor219.990
3611841Textiles1139.000
3711841Decor3159.000
3811841Lighting3189.000
3911841Furniture4259.000
4011842Lighting254.9910
4111843Decor115.990
4211843Textiles152.990
4311843Textiles2139.000
4411843Furniture1999.000
4511843Kitchen113.990
4611844Furniture1179.000
4711845Textiles223.990
4811845Textiles152.990
4911846Decor415.9910
5011846Lighting1279.0010
5111846Decor319.9910
5211846Kitchen213.9910
5311846Kitchen110.9910
5411847Kitchen960.990
5511848Textiles128.990
56
57

Cargando el editor…

    ResultadoPresiona Comprobar para comparar F2:F55, I2:I24

    Mote revisa tu resultado

    Presiona Comprobar. Cada celda correcta se vuelve una luciérnaga en tu linterna.

    La lección

    Una exportación de ventas tiene una fila por línea de pedido: una lámpara y una manta en la misma cesta son dos filas. Sin embargo, la mayoría de las preguntas son sobre pedidos: ¿qué pagó cada cliente?, ¿cuántos pedidos tuvimos?, ¿cuánto vale en promedio un pedido? Este nivel construye el puente entre ambos, y el resto del capítulo se apoya en él.

    La hoja contiene cada línea de los 23 pedidos hechos el lunes 17 de noviembre de 2025: 54 líneas en A2:E55. La columna H lista cada id de pedido una vez. El mes completo de Amanda son 1,600 líneas; una vez que las fórmulas funcionan con esta muestra, funcionan con el mes.

    Paso 1: cuánto ganó cada línea

    La definición de ingresos es la misma que usa el caso de las fiestas de SQL y pandas: quantity × price × (1 − discount ÷ 100). En F2:

    =C2*D2*(1-E2/100)

    Rellénala hasta F55. La mayoría de las líneas no tiene descuento, así que F2 es simplemente 1 × 159 = 159.00. La fila 6 es el pedido 11829, que usó un código de 10%: 1 × 139 × 0.9 = 125.10.

    Paso 2: SUMIF por id de pedido

    SUMIF suma los valores de un rango donde otro rango cumple un criterio:

    argumento aquí significado
    range $A$2:$A$55 dónde buscar el id de pedido
    criteria H2 el id a coincidir
    sum_range $F$2:$F$55 qué sumar, fila por fila
    I2   =SUMIF($A$2:$A$55,H2,$F$2:$F$55)

    Para el pedido 11829 (H5), SUMIF encuentra tres líneas en las filas 6 a 8 y suma 125.10 + 27.89

    • 429.30 = 582.29. Los dos rangos deben tener el mismo tamaño y empezar en la misma fila, porque la función los empareja posición por posición.

    Bloquea ambos rangos con $, deja H2 relativa y rellena hacia abajo hasta I24. Cada fila busca su propio id entre las 54 líneas.

    Comprueba que ambos lados coinciden

    Una agregación no debe crear ni perder dinero. Pon =SUM(F2:F55) y =SUM(I2:I24) en dos celdas libres: ambas muestran 10,937.42. Si el lado de los pedidos es menor, falta un id en H o está mal escrito; si es mayor, un id está listado dos veces. Esta sola comprobación detecta la mayoría de los errores de agregación antes de que los vea nadie más.

    El mismo hábito importa cuando pasas al mes completo. En el caso de SQL, noviembre de 2025 da 651 pedidos y 292,364.40 de ingresos netos. Una hoja construida con las mismas líneas y la misma definición tiene que llegar exactamente a esos números, y el nivel 6 muestra que lo hace.

    Por qué bloquear rangos que parecen funcionar sin bloquear

    Prueba =SUMIF(A2:A55,H2,F2:F55) sin signos de dólar. En esta hoja da por casualidad las respuestas correctas: rellenada hacia abajo, I10 busca en A10:A63, y como las líneas están ordenadas por id de pedido, las líneas del pedido 11834 (filas 16 y 17) siguen dentro de esa ventana. Ordena mañana las líneas por categoría y la ventana empieza a saltarse líneas que pertenecen al pedido. Bloquea los rangos para que la fórmula no dependa de cómo estén ordenados los datos.

    Errores comunes

    • Sumar la columna de precios. $D$2:$D$55 suma precios unitarios e ignora cantidad y descuento: el pedido 11829 muestra 328.99 en lugar de 582.29.
    • Intercambiar range y sum_range. =SUMIF($F$2:$F$55,H2,$A$2:$A$55) busca el id de pedido entre los totales de línea, no encuentra nada y todos los pedidos muestran 0.
    • Rangos de distinto tamaño. Mantén el rango de criterios y el de suma con la misma altura y fila de inicio, o las filas se emparejan mal.
    • Tratar el descuento como fracción. (1-E2) convierte un código de 10% en una línea negativa: la fila 6 se vuelve −1,251.

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