viernes, 17 de abril de 2009

Cálculos por fechas para varios productos (rangos dinámicos)

Partiendo del ejemplo del artículo anterior, "Cálculos con Rangos Dinámicos y Cuadros Combinados", me habéis planteado la siguiente cuestión: cómo podemos seleccionar varios productos a la vez (y no sólo uno como en el artículo citado) y que me calcule las ventas acumuladas en los meses que seleccione. Para resolver esta duda vamos a manejar, además de las herramientas y funciones utilizadas en el artículo citado, casillas de verificación, condicionales anidados y formato condicional.

1. Lo primero que tenemos que hacer es anular la parte de entrada de datos del ejercicio citado que nos permitía seleccionar un producto concreto, ya que vamos a habilitar la posibilidad de seleccionar varios a la vez. Tendremos que borrar A2, B2 y el cuadro combinado que teníamos en B2. También borraremos las celdas donde obteníamos el resultado para un sólo producto, es decir, A6 y B6 (la primera imagen es lo que teníamos y la segunda cómo lo debemos dejar):


2. A continuación procedemos a generar las casillas de verificación que serán 10 (tantas como referencias o productos tengamos). Para ello habilitamos la barra de herramientas de Formulario (menú Ver /barras de herramientas/Formularios) y hacemos clic encima de la casilla de verificación:
3. Volvemos a la hoja y nos situamos encima de la celda A10 (a la altura del final de la celda y dibujamos la casilla de verificación (haciendo clic en el botón izquierdo del ratón y sin soltar el clic lo arrastramos hacia la derecha). Una vez dibujado procedemos a borrar el texto que aparezca (que será algo como casilla de verificación 1). El motivo de dejarlo en blanco es que como lo hemos situado en A10 el nombre del producto queda justo a continuación.
4. Copiamos esta casilla de verificación y la pegamos 9 veces (así tendremos las diez que necesitamos) y las vamos colocando hasta que queden como en la imagen (cada casilla al lado de su producto):
5. Este paso que explicaré a continuación tendremos que repetirlo para cada una de las casillas de verificación. Lo único que variará es la celda con la que vincularemos cada una de las casillas. Encima de la casilla de verificación hacemos clic con el botón DERECHO del ratón y, del menú emergente que se abrirá, seleccionamos Formato de control. En la pestaña Control en Valor seleccionamos Sin Activar y en Vincular con la celda hacemos clic en la celda Q10 (vamos a utilizar el rango Q10:Q19 para vincular cada una de las casilla de verificación, así que la siguiente la vincularemos con Q11 y así sucesivamente). Pulsamos Aceptar.

Fíjese que ahora cuando pulsamos dentro de la casilla de verificación, por ejemplo la que hemos colocado en la celda A10, la celda con la que la hemos vinculado (Q10) presenta el valor VERDADERO, mientras que si dejamos la casilla en blanco en Q10 presenta el valor FALSO. Esto mismo debe ocurrir en todo el rango Q10:Q19 cuando activemos o desactivemos sus correspondientes casillas.

6. Una vez hayamos vinculado todas y cada una de las casillas nos situamos en la celda A10 y escribimos la siguiente fórmula que enseguida explico:

=SI(Q10=FALSO;"";SI($B$3>$B$4;"Error fechas";SUMA(DESREF(B10;;$B$3;1;$B$4-$B$3+1))))

Como se puede ver estamos anidando dos condicionales (introduciendo un SI dentro de otra función SI). El primero comprueba una cosa muy sencilla: si hemos activado o no la casilla de verificación que tenemos dibujada en la celda A10. En concreto lo que comprueba es si NO la hemos activado. En tal caso le pedimos que no haga nada (que deje la celda "en blanco"). Si esta condición se cumple entonces ya no seguirá leyendo el resto de la fórmula, pues esta es la manera con la que Excel trabaja con los condicionales anidados. En caso de que Q10 no sea igual a FALSO (por tanto será igual a VERDADERO) entonces lo que pasamos a comprobar es si las fechas de la entrada de datos son correctas (básicamente que la fecha "desde" sea menor que la fecha "hasta"). En caso de que dicha comprobación tampoco se cumpla, y que por lo tanto las fechas sean correctas, entonces continúa leyendo el resto de la fórmula, que es dónde procedemos a realizar el cálculo en si (parte que puede consultar en el artículo al que hacíamos referencia al principio:"Cálculos con Rangos Dinámicos y Cuadros Combinados"

7. Copiamos la fórmula de A10 hasta A19.
8. Ya sólo nos queda el último paso para terminar nuestro modelo: sombrear el nombre de los productos cuyas casillas de verificación estén marcadas. Para ello seleccionamos el rango B10:B19 y vamos al menú Formato/Formato condicional. En el primer recuadro seleccionamos fórmula (en vez de valor de la celda) y escribimos (en el recuadro de la derecha):
=SI(Q10=VERDADERO;1;0)   Fíjese que Q10 no lleva dólares.
Pulsamos el botón Formato y, por ejemplo, seleccionamos fuente de color blanco y con estilo negrita y, además, trama granate. Aceptamos.

El modelo ya está terminado. Ahora ya puede seleccionar un mes inicial y un mes final, marcar los productos que le interesen y obtendrá las ventas acumuladas de éstos en el período indicado, como se puede ver a continuación (he omitido parte de la tabla de ventas para que la imagen sea más nítida):


No hay comentarios:

Publicar un comentario en la entrada