Incorporar un checkbox para sumar y contar elementos de una lista de datos

Supongamos que tenemos la siguiente lista de la compra:

Imagen
Lista de la compra

Y ahora deseamos poder elegir aquellos que compraremos o no, y que éstos nos aparezcan sumados. Pero solo, insisto, los que seleccionemos.

Podemos usar un checkbox para ello. No es muy complicado y el resultado es muy vistoso.

Para comenzar deberemos tener activa la ficha del programador. Si no sabes cómo, puedes leerlo en la entrada siguiente, ->pulsa<-. Una vez activa, selecciónala pulsando en su pestaña.

En la parte central (más o menos) verás un grupo que se llama Controles, pulsa en el icono Insertar. Verás aparecer una lista de los controles que puedes insertar.

Elige del grupo de abajo (ActiveX) el checkbox, que es el que se muestra en la imagen siguiente destacado con un círculo rojo:

Imagen
Insertar y modificar ActiveX

Cuando lo elijas desaparece la lista y vuelves a la hoja de cálculo. Notarás que el cursor se ha transformado en una pequeña cruz. Elije por ejemplo la celda F2. Pincha y arrastra con el botón derecho del ratón como si trazaras un rectángulo.

Al soltar el botón, aparecerá el control checkbox. Puedes modificarlo asegurándote de tener pulsado el icono de Modo Diseño, el que está al lado de Insertar.

Este icono cuando está seleccionado aparece destacado en color naranja (tal y como se ve en la imagen anterior), y en ese momento puedes seleccionar los controles para cambiarlos.

Asegúrate de tener seleccionado el checkbox y pulsa en las propiedades para cambiarlas. El botón de propiedades se encuentra al lado del botón Modo Diseño. Es el que puedes ver en la imagen anterior, es pequeño y representa una mano y un cuadro blanco.

Aparecerá un panel con todas las propiedades del control, en nuestro caso el checkbox. Son muchas, pero ahora solo necesitamos cambiar Caption y LinkedCell.

Caption es el texto que aparecerá en el control. En este caso vamos a dejarlo en blanco, sin texto, así que borra lo que pone.

En LinkedCell se pone una celda a la que asociamos el control. Es decir que la celda tendrá lo que seleccionemos en el control. En este caso, nuestra LinkedCell será E2, la celda justo a la izquierda de la de nuestro checkbox. En esta celda (E2) el checkbox irá mostrando su valor, que puede ser solamente VERDADERO o FALSO según esté o no seleccionado. Si quieres probar, quita el Modo Diseño y pulsa en el checkbox. Podrás comprobar que cuando esté seleccionado aparecerá VERDADERO en la celda E2 (su LinkedCell, celda asociada) y cuando lo desmarques, aparecerá FALSO.

Ahora repetimos los pasos anteriores e insertamos otro checkbox en F3… F8… hasta que quede así:

Imagen

Para ir más rápido puedes copiar el control. De forma rápida: selecciona el CheckBox, pulsa Ctrl+C y  a continuación Ctrl+V verás como enseguida tienes todos los controles.

Debes tener especial cuidado en que cada control tenga como LinkedCell la celda de al lado. Si pulsas en el control, verás que aparece en la celda asociada el valor VERDADERO, o FALSO, según se seleccione o no.

Finalmente vamos a poner las fórmulas. En ambas evaluaremos el contenido del rango E2:E13 y según su contenido, contaremos o sumaremos los artículos sólo si están seleccionados. Recuerda que éstas son las celdas que hemos asociado a los checkbox,  si está seleccionado el checkbox, en su celda asociada (LinkedCell) aparecerá VERDADERO. Así pues, nuestra fórmula tiene que comprobar que sea VERDADERO y entonces contar y sumar el producto.

Para contar en rangos, comprobando que se cumplan determinadas condiciones tenemos la función

=Contar.Si(rango;condición)

En rango pondremos lo que hay que evaluar, el rango a comprobar si cumple la condición, es decir E2:E13. En condición, lo que se tiene que cumplirse para que lo contemos. Habíamos dicho que debía ser VERDADERO, porque eso significa que el CheckBox estará seleccionado.

Pondremos entonces en F15  la función siguiente:

=CONTAR.SI(E2:E13;"VERDADERO")

Esta fórmula podemos leerla como “contar si la celda en el rango E2:E13 tiene el valor VERDADERO”

Lo mismo hacemos con la suma. Para este caso tenemos la función

SUMAR.SI(rango;criterio;rango_sumar)

En rango y criterio escribiremos lo mismo que en la función CONTAR.SI que hemos antes, se aplican igual. El rango_sumar se refiere al rango que deseamos sumar. Necesariamente tiene que ser numérico. En este caso, queremos sumar los precios de los productos que están en D2:D13. Entonces en nuestro ejemplo aplicaremos la fórmula siguiente:

=SUMAR.SI(E2:E13;"=VERDADERO";D2:D13)

Esta fórmula la hemos escrito en F16. Es prácticamente igual que la de CONTAR.SI:  miramos si el contenido de la correspondiente celda en la columna E es VERDADERO. Añadimos el rango D2:D13 que es el que contiene los precios, ya que queremos que nos muestre la suma de los precios seleccionados.

Esta fórmula la podemos leer como: “Suma lo que hay en D2:D13 si su celda correspondiente en E2:E13 es VERDADERO”

Finalmente para que el resultado sea más estético, podemos ocultar la columna E, ya que tampoco aporta nada a la persona que ve el listado. El resultado será como sigue, observa el salto de la columna D a F:

 

Imagen
Resultado final con checkbox para seleccionar los productos

Según vayamos seleccionando en el checkbox los distintos productos, éstos aparecerán contados y sumados, o no.

Anuncios

5 thoughts on “Incorporar un checkbox para sumar y contar elementos de una lista de datos

  1. quede con dudas en: En LinkedCell se pone una celda a la que asociamos el control. Es decir que la celda tendrá lo que seleccionemos en el control. En este caso ponemos E6.

    Ahora repetimos los pasos anteriores e insertamos otro checkbox en F7, F8… hasta que quede así

    tienes figura?

    • Hola Priscila, muchas gracias por tu comentario. Lamento decirte que el post es del año 2014 y ya no conservo imágenes, nada más que las que puedes ver. He estado revisando y creo que el problema es que en su momento me confundí y la celda F6 debería ser F2 y E6, E2. El checkbox puede tener dos valores: seleccionado (VERDADERO) o no (FALSO). El tema está que tienes que poder acceder a ese valor de alguna forma y Excel te permite “dejarlo” en una celda que llama LinkedCell. Realmente podíamos dejarlo en cualquier celda, pero en el post utilizo la E2 para que esté cerca y se vea el resultado.
      También he modificado algunas cosas más. Ya te digo que este post es de hace mucho tiempo. A ver si con estas nuevas modificaciones, te ayuda más. En cuanto lo hagas, verás que en realidad es bastante sencillo.

  2. Hola que tal como puedo direccionar un checkbox a una hoja de excel si tiene el dato que quiero que se marque si no pues no pero ligadas ya que si cambia en un futuro ese dato puede cambiar automaticamente el check box

    • Hola Ivan, gracias por tu comentario. El checkbox tiene una propiedad que te permite vincularlo con la celda que necesites. Tanto si el checkbox es un ActiveX como si no lo es, accede a las propiedades y busca una que se llama “LinkedCell” (si es ActiveX) o “Vincular con la celda” . Entonces indica la que va a contener el valor.

      • Ah, y si la celda la tienes en otra hoja que no es en la que está el checkbox, necesitas indicar el nombre de la hoja delante de la celda. Por ejemplo, si quieres vincular un checkbox con la celda D5 y esta estuviera en otra hoja distinta llamada “Misdatos” deberías escribir en LinkedCell lo siguiente: Misdatos!D5.
        Observa que después de mis datos hay un signo ! de admiración, no hay que olvidarlo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s