Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
como calcular porcentajes en Excel01

¿Cómo sacar un porcentaje en Excel?

| Sin comentarios

El porcentaje es un tema muy conocido por la mayoría de los usuarios ya que este tema ha sido tocado o aplicado en alguna etapa de nuestras vidas. El porcentaje tiene por símbolo matemático denominado “por ciento” (%) y representa una fracción o también representa un parte del total.

A continuación, por medio del software de hojas de cálculo que tiene por nombre Excel desarrollaremos un ejercicio en la cual realizaremos paso por paso el cálculo del porcentaje por dos formas distintas.

Primeramente haremos el cálculo del porcentaje sin macros y finalmente lo calcularemos por medio del VBA (con macros). 

CÁLCULO DEL PORCENTAJE

Nos dan esta base de datos (que pudimos crear mediante el uso de un formulario) que corresponde a la venta mensual de los promotores de venta de la marca de calzados Hush Puppies.

Nos piden calcular el porcentaje de cada uno de estos promotores con respecto al total vendido en dicho mes.

cálculo del porcentaje

RESOLUCIÓN:

PASO 1: Primeramente lo que haremos es saber y calcular el monto total vendido en el mes (de todos los promotores) para poderlo tomar como la totalidad (100%).

Para poder sumar aplicaremos una fórmula que la muestro a continuación:

=SUMA(“Rango de celdas”)

Escribiremos “=SUMA( )” luego de la última fila de la base de datos

, y dentro de los paréntesis debemos seleccionar el rango de celdas que contienen los números que queremos sumar y automáticamente nos va a salir la suma total de todo lo que vendieron los promotores en el mes.

cálculo del porcentaje 01

cálculo del porcentaje 02

PASO 2: Nos dirigiremos y seleccionaremos la celda E2 para luego digitar el signo igual (=).

cálculo del porcentaje 03

A continuación de escribir el signo igual (-) en la celda E2; seleccionaremos la celda D2 (celda de color azul), digitamos el signo slash (/), selecciona la celda D17 (celda de color rojo) que es la celda de la suma total de las ventas de los promotores en el mes y presionamos la tecla F4 para fijarlo.

cálculo del porcentaje04

cálculo del porcentaje 04

PASO 3: Para finalizar esta primera forma de calcular porcentajes sin el uso de las macros, al seleccionar la celda E2 podremos visualizar un cuadrado pequeño de color verde en la esquina inferior derecha de la celda E2 y en dicho cuadrado pequeño verde daremos dos clics izquierdos.

cálculo del porcentaje 05

cálculo del porcentaje 06

CÁLCULO DEL PORCENTAJE / MACROS

Antes de comenzar a realizar el cálculo del porcentaje por medio del uso de macros, dicha base de datos que representa la venta mensual que han tenido los promotores de las distintas tiendas por departamento y centros comerciales respectivos ha sido creada mediante un formulario (UserForm) que el profesor Fernando Jesús Santos Fernández ha podido orientar y enseñar en el transcurso de sus clases sobre lo ventajoso que pueden ser estos formularios.

Formulario1

¿CÓMO ES QUE SE CREA UN FORMULARIO (USERFORM)?

Primeramente nos tenemos que dirigir al Visual Basic (VBA).

USERFORM 

Una vez abierto el UserForm podemos crearlo en base a nuestro criterio con el cuadro de herramientas que se ve en el lado derecho.

Hemos utilizado el cuadro de herramientas del UserFom para poder crear un formulario que plasme los datos colocados en el UserForm en una hoja del libro. Del cuadro de herramientas dimos uso a:

* Etiqueta (Label1, Label2, Label3 y Label4).
* Cuadro de texto (TextBox1 y TextBox2).
* Cuadro combinado (ComboBox1 y ComboBox2).
* Botón de comando (CommandButton1).

Aplicaciones

 Observamos que hemos creado dos hojas:

La primera hoja que tiene por nombre “PROMOTORES” contiene encabezados que corresponde al nombre – apellido del promotor, tienda por departamento, centro comercial, monto vendido en el mes y porcentaje.

Creación de hojas

La segunda hoja que tiene por nombre “TIENDAS Y C.C” se colocó datos con respecto a las tiendas y los centros comerciales que han sido designados de forma individual a cada promotor.

Tiendas2

Volviendo a la parte del UserForm exactamente en los cuadros combinados, lo que se busca es que al darle al botón play (ejecutar) nos muestre el formulario y que al darle clic en cada uno de los cuadros con flecha para debajo de los cuadros combinados (ComboBox1 y ComboBox2) se despliegue para abajo los datos de la hoja “TIENDAS y C.C.”.

USERFORM2

Tiendas2

 Para poder pasar los datos de la hoja “TIENDAS Y C.C.” al UserForm le damos doble clic al ComboBox1, borramos todo el contenido que esté en la ventana del UserForm y colocamos el texto mostrado a continuación para que aparezca los datos de las columnas (tienda y centro comercial) de la hoja “TIENDAS Y C.C.” al darle clic a los ComboBoxs en el formulario.

combo box

combo box1

combo box2

combo box3

Tienda por departamento

centro comercial formulario

Private Sub UserForm_Activate()
'Coger la columna de las tiendas por departamento hasta la última fila y pasarlas al ComboBox1
Sheets("TIENDAS Y C.C.").Select
ult1 = Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To ult1 Step 1
ComboBox1.AddItem Cells(x, 1)
Next
'Coger la columna de los centros comerciales hasta la última fila y pasarlas al ComboBox2
Sheets("TIENDAS Y C.C.").Select
ult2 = Cells(Rows.Count, 2).End(xlUp).Row
For x = 2 To ult2 Step 1
ComboBox2.AddItem Cells(x, 2)
Next
Sheets("PROMOTORES").Select
Range("A1").Select
End Sub

A continuación colocaremos el siguiente texto después de haber colocado el texto del Private Sub UserForm_Activate(), este nuevo texto nos va a validar que solo existan letras en el TextBox1 y solo números en el TextBox2. 

 

Private Sub TextBox1_Change()
'Solamente se permita escribir texto en el TextBox1
If IsNumeric(TextBox1.Text) And _
TextBox1.Text <> "" Then
Beep
MsgBox "En este campo solo se acepta texto"
TextBox1.Text = ""
TextBox1.SetFocus
End If
End Sub
Private Sub TextBox2_Change()
'Solamente se permita digitar números en el TextBox2
If Not IsNumeric(TextBox2) And _
TextBox2.Text <> "" Then
Beep
MsgBox "En este campo solo se aceptan números"
TextBox2.Text = ""
TextBox2.SetFocus
End If
End Sub

EndSub

Regresamos nuevamente al UserForm y le damos doble clic al botón de comando (CommandButton1) y colocaremos el siguiente texto ya que este nos va a permitir pasar los datos colocados en el formulario a la hoja de “PROMOTORES”.

Private Sub CommandButton1_Click()
'Pasar los datos del UserForm a la hoja "PROMOTORES"
Sheets("PROMOTORES").Select
Nombre = TextBox1.Text
Tienda = ComboBox1.Text
Centro = ComboBox2.Text
Monto = TextBox2.Text
ult = Cells(Rows.Count, 1).End(xlUp).Row
Cells(ult + 1, 1) = TextBox1.Text
Cells(ult + 1, 2) = ComboBox1.Text
Cells(ult + 1, 3) = ComboBox2.Text
Cells(ult + 1, 4) = TextBox2.Text
TextBox1.Text = ""
ComboBox1.Clear
ComboBox2.Clear
TextBox2.Text = ""
UserForm1.Hide
End Sub

formulario2

Formulario3

Salimos del VBA por un momento, nos dirigimos al botón “INSERTAR”, buscamos el botón de comando (ControlActiveX), le damos clic y colocamos dos botones de comando. 

Uno va a servir para que nos muestre el formulario y completemos la información del promotor y así poder crear nuestra base de datos mientras que el otro botón de comando nos va a permitir calcular el porcentaje que le corresponde a cada uno con respecto al total vendido en el mes.

USERFORM CÁLCULO

Una vez creado los dos botones de comando (Control ActiveX), le damos doble clic al primer botón que nos va a servir para mostrar el formulario y colocamos lo siguiente:

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

USERFORM MACROS

 ¡AHORA SÍ CALCULAREMOS EL PORCENTAJE!

El segundo botón de comando (Control ActiveX) nos va a servir calcular cuánto es el porcentaje de cada uno de los promotores con respecto al total vendido.

Le damos doble click al segundo botón y colocamos:

Private Sub CommandButton2_Click()
Dim Suma As Double
Dim x As Integer
Dim ult As String
ult = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
Suma = Hoja1.Application.WorksheetFunction.Sum(Hoja1.Range("D2:D" & ult))
x = 2
Do While Hoja1.Cells(x, 1) <> ""
Hoja1.Range("E" & x) = Hoja1.Range("D" & x) / Suma
Hoja1.Range("E" & x).NumberFormat = "0.00%" 
x = x + 1
Loop
End Sub

Este texto nos va a permitir sumar las ventas de todos los promotores siendo la totalidad del mes (100%), luego va a dividir el monto vendido de cada promotor entre el total del mes y lo pondrá en el formato porcentual (0.00%).

Una vez creada nuestra base de datos gracias al UserForm, le damos clic al botón que nos permite calcular porcentaje y automáticamente nos saldrá el porcentaje de cada uno de los promotores.

USERFORM CÁLCULO PORCENTAJE

formulario cálculo

Deja una respuesta

Los campos requeridos estan marcados con *.