Tenemos dos tablas, en una primera tabla, tenemos una fecha, un numero de factura, un precio de coste, y, un descuento.
Tenemos una segunda tabla, donde tenemos un numero de factura, un producto, una cantidad y un precio.
En la primera tabla, cada numero de factura, tiene un precio de coste, y, un descuento, en la segunda tabla, cada producto tiene asociado un numero de factura, junto con su cantidad y precio.
Tenemos que asignar el precio de coste a cada factura de la tabla Ventas2, debemos de asignarlo a Ventas2, porque en dicha tabla, se encuentran los productos.
Lo primero que tenemos que hacer, es encontrar el descuento para esta primera factura.
Pero, tenemos el importe del descuento en la tabla ventas, no el porcentaje, si tuviéramos el porcentaje, bastaría con multiplicar cantidad por precio, y, por la tasa de descuento, pero, falta dicho porcentaje, el que debemos de calcular.
Lo primera será calcular el total, que saldrá de multiplicar cantidad por precio para cada numero de factura, este total, lo vamos a calcular en la tabla ventas, entonces, en la celda E4, como encabezado, pongo el nombre de total, y, vemos como se agrega una nueva columna a la tabla.
Vamos a ver dos formas de poder calcular el total, la primera de ellas va a ser con la función SUMAPRODUCTO, que multiplicara varias cadenas, y, después las sumara, entonces, escribimos el signo igual, seguido de la función, y, abrimos un paréntesis.
=SUMAPRODUCTO(
Como argumento array1, seleccionamos la columna de cantidad.
=SUMAPRODUCTO(Ventas2[Cantidad]
Como argumento array, seleccionamos la columna de precio.
=SUMAPRODUCTO(Ventas2[Cantidad];Ventas2[Precio]
Como argumento array3, debemos de poner una condición, dicha condición, es que la columna numero de factura de la tabla ventas2, debe de ser igual al numero de factura de la tabla ventas.
Pero, debemos de seleccionar la columna numero de factura de la tabla ventas2, y, compararla con cada numero de factura de la tabla ventas, si nos fijamos en la sintaxis, podemos ver que después del signo igual de la comparación, no pone el nombre de la tabla, sino que abre un corchete, el símbolo de ampersand, y, el nombre de la columna, después se cierran los corchetes, esto quiere decir, que compara con cada fila.
=SUMAPRODUCTO(Ventas2[Cantidad];Ventas2[Precio];Ventas2[Numero de factura]=[@[Numero de factura]])
Aceptamos, y, nos devuelve cero.
Esto es debido a que devuelve VERDADERO y FALSO, y, la función SUMAPRODUCTO, no puede manejarlo, por lo que necesitamos convertirlos en 1 y 0, para ello, vamos a usar el doble signo negativo, que convierte VERDADERO en 1, y, FALSO en 0, para ello, ponemos el doble signo negativo antes de la comparación, abrimos un paréntesis, englobamos la comparación, y, cerramos el paréntesis.
=SUMAPRODUCTO(Ventas2[Cantidad];Ventas2[Precio];--(Ventas2[Numero de factura]=[@[Numero de factura]]))
Aceptamos, y, ahora si tenemos los totales.
El doble signo negativo, tiende a funcionar más rápido dentro de la función SUMAPRODUCTO.
Lo siguiente es calcular el porcentaje, para ello, tenemos que decir la columna descuento entre la columna de total.
=[@Descuento]/[@Total]
Y ya lo tenemos.
Ahora, vamos a la tabla ventas2, donde necesito encontrar el descuento que corresponde a cada número de factura, por lo que voy a añadir una nueva columna, llamada descuento.
Entonces, en la tabla ventas1, tenemos la columna de descuento, el cual debemos de rescatar en la tabla ventas2, voy a usar la función BUSCARV, donde como argumento valor buscado, es la celda I5, cuando hacemos clic en dicha celda, aparece:
=BUSCARV([@[Numero de factura]]
Como argumento matriz, seleccionamos desde la columna numero de factura hasta la columna de porcentaje.
=BUSCARV([@[Numero de factura]];Ventas1[[Numero de factura]:[Porcentaje]];
Como argumento número de columna, ponemos 6.
=BUSCARV([@[Numero de factura]];Ventas1[[Numero de factura]:[Porcentaje]];6
Y, en tipo de coincidencia, ponemos exacta.
Cerramos paréntesis, y, aceptamos.
=BUSCARV([@[Numero de factura]];Ventas1[[Numero de factura]:[Porcentaje]];6;FALSO)
Ya tenemos el porcentaje que corresponde con cada numero de factura de la tabla ventas2.
El modelo ventas1, esta ordenado, pero en caso de estar ordenado de otra manera, da igual, porque estamos buscando una coincidencia exacta.
El ultimo paso, es multiplicar este porcentaje, por la multiplicación de cantidad por precio.
=BUSCARV([@[Numero de factura]];Ventas1[[Numero de factura]:[Porcentaje]];6;FALSO)*[@Cantidad]*[@Precio]
Ya tenemos el precio total menos el descuento.
Comments