miércoles, 24 de agosto de 2016

Macros para contar y sumar condicionalmente usando funciones de Excel

Contenidos
  1. 1 Función Countif
  2. 2 Función CountIfs
  3. 3 Función SumIf
  4. 4 Función SumIfs





Para los siguientes ejemplos, se han considerado nombrar los siguientes rangos en la tabla anterior:
  • Región: A2:A10
  • Estado.  B2:B10
  • Ventas:  C2:C10

Función Countif

  • Una condición
  • CountIf(rango, criterio)
    • Los criterios se pueden expresar como 100, "100", ">100", "Norte", A1
    • Los criterios para buscar textos pueden utilizar comodines como el * (asterisco) y  ? (signo de interrogación)

Contar el número de renglones de la columna "Región" = "Norte"

Sub Contar1()
      MsgBox Application.WorksheetFunction.CountIf(Range("Región"), "Norte")
End Sub


Contar el número de renglones de la columna "Estado" que empiecen con la letra "C"

Sub Contar2()
    MsgBox Application.WorksheetFunction.CountIf(Range("Estado"), "C*")
End Sub

Contar el número de renglones de la columna "Ventas " >= 200

Sub Contar3()
    MsgBox Application.WorksheetFunction.CountIf(Range("Ventas"), ">=200")
End Sub


Función CountIfs

  • Varias condiciones
  • CountIfs(rango_1, criterio_1, rango_2, criterio_2)
    • Se aceptan hasta 127 pares de rangos y criterios
    • Los criterios se pueden expresar como 100, "100", ">100", "Norte", A1
    • Los criterios para buscar textos pueden utilizar comodines como el * (asterisco) y  ? (signo de interrogación)

Contar el número renglones que en la columna "Región" = "Norte" y en columna "Ventas" >= 200

Sub Contar4()
    MsgBox Application.WorksheetFunction.CountIfs(Range("Región"), "Norte", Range("Ventas"), ">=200")
End Sub


Función SumIf

  • Una condición
  • SumIf(rango, criterio)
    • Los criterios se pueden expresar como 100, "100", ">100", "Norte", A1
    • Los criterios para buscar textos pueden utilizar comodines como el * (asterisco) y  ? (signo de interrogación)
Sumar los renglones de la columna "Ventas" >=200

Sub Sumar1()
    MsgBox Application.WorksheetFunction.SumIf(Range("Ventas"), ">=200")
End Sub


Función SumIfs

  • Varias condiciones
  • (rango_de_trabajo, rango_1, criterio_1, rango_2, criterio_2)
    • Los criterios se pueden expresar como 100, "100", ">100", "Norte", A1
    • Los criterios para buscar textos pueden utilizar comodines como el * (asterisco) y  ? (signo de interrogación)
Sumar los renglones de la columna "Ventas", donde la columna "Región" = "Norte" y la columna "Estado" comience con "C*"

Sub Sumar2()
    MsgBox Application.WorksheetFunction.SumIfs(Range("Ventas"), Range("Región"), "Norte", Range("Estado"), "C*")
End Sub

Sumar la columna "Ventas", donde las "Ventas" sean >= 200 y <= 250

Sub Sumar3()
    MsgBox Application.WorksheetFunction.SumIfs(Range("Ventas"), Range("Ventas"), ">=200", Range("Ventas"), "<=250")
End Sub