miércoles, 24 de agosto de 2016

Macros para contar y sumar condicionalmente usando funciones de Excel

Contenidos
  1. Función Countif
  2. Función CountIfs
  3. Función SumIf
  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