Sumar Si en VBA

Hace unos días me preguntaba un amigo como era la función SUMAR.SI en VBA. Esta función, que es super usada en Excel no existe en VBA como tal. ¿Pero cómo que no existe?. La respuesta es sencilla, en VBA podemos emular casi cualquier función de manera sencilla pero customizándola a nuestras necesidades.

Lo que necesitamos crear un VBA es un pequeño código que nos permita hacer un sumar si en VBA, esto es, una suma con condiciones… una o varias.

Pero esto se entenderá mejor con un ejemplo…

EJEMPLO

Supongamos que tenemos un rango de valores en una tabla de Excel desde la fila 2 hasta la fila 100 en la columna A y parejo, en la columna B tenemos una condición que es OK o KO. Es decir, cada valor numérico lleva aparejado un OK o un KO. Nuestro objetivo será sumar todos los valores que estén aparejados con un KO.

El siguiente código contiene un bucle FOR que recorre todo el rango desde arriba hasta abajo, un variable que se llama resultado en la que guardaremos el resultado de la suma condiciona y un IF que verifica la condición.

[codesyntax lang=”vb” lines=”no” container=”div” blockstate=”expanded” doclinks=”0″]

Sub Contar_Condicional()
'inicializo la variable resultado
RESULTADO = 0
 
    'comienzo el bucle
    For i = 2 To 100
        If Cells(i, 2) = "OK" Then  'criterio qeu debe cumplir
 
            'sumo sólo los valores que cumplen el criterio
            'y voy sumando acumuladamente a lo anterior.
            RESULTADO = RESULTADO + Cells(i, 1)
 
 
        End If
    Next
    
    MsgBox RESULTADO
End Sub

[/codesyntax]

Al crear el código podríamos añadir tantas condiciones con IF anidado o con AND (ver más) como quisiéramos. Esto nos permitiría ampliar nuestra función SUMAR.SI en VBA a SUMAR.SI.CONJUNTO. Es decir, es lo mismo que hacer el sumar si en VBA que acabamos de ver pero con un mayor número de condiciones.

En realidad también podríamos haber usado la función SUMAR.SI de Excel mediante la llamada:

Application.WorksheetFunction.Sumif

Pero no merece la pena puesto que es mucho más rígida que crear nuestro propio código.

En el siguiente enlace puedes ver un ejemplo con la macro en cuestión: Ejemplo SUMAR SI VBA

(Visited 46.942 times, 1 visits today)
Categorías VBA

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información ACEPTAR

Aviso de cookies