En este artículo, aprenderemos cómo usar la función SUMIF en VBA con múltiples criterios en Excel usando código VBA.

Para obtener el resultado, usaremos una combinación de funciones OFFSET & COUNTA para crear la Lista de Administrador de Nombres.

Entendamos con un ejemplo:

  • Tenemos un informe de ventas para el vendedor, la región y el producto para los años 2012 a 2014.

img1

  • Queremos conocer la cifra de Ventas que cumple las siguientes condiciones: –

img2

  • Para todas las condiciones; necesitamos crear rangos de nombres Para crear rangos de nombres dinámicos para el vendedor:

Presione CTRL + F3> Haga clic en Nuevo e ingrese la fórmula como = OFFSET (Sheet1! $ B $ 1,1,0, COUNTA (Sheet1! $ A: $ A) -1)

img3

De manera similar, cree rangos con nombre para otras condiciones * Presione CTRL + F3 para abrir la ventana Administrador de nombres (consulte las listas que ya están creadas)

img4

  • Usando la función Pegar nombres en la pestaña Fórmulas, obtendremos la lista completa del rango de nombres definidos en las celdas.

img5

  • Haga clic en Pegar lista

img6

nDate * = OFFSET (Sheet1! $ A $ 1,1,0, COUNTA (Sheet1! $ A: $ A) -1)

nProduct * = OFFSET (Sheet1! $ D $ 1,1,0, COUNTA (Sheet1! $ A: $ A) -1)

nRegion * = OFFSET (Sheet1! $ C $ 1,1,0, COUNTA (Sheet1! $ A: $ A) -1)

nVentas * = COMPENSACIÓN (Hoja1! $ E $ 1,1,0, CONTAR (Hoja1! $ A: $ A) -1)

nVENDEDOR * = COMPENSACIÓN (Hoja1! $ B $ 1,1,0, CONTAR (Hoja1! $ A: $ A) -1)

Debemos seguir los pasos que se mencionan a continuación para iniciar el editor de VB. Haga clic en la pestaña Desarrollador. Desde el grupo Código, seleccione Visual Basic

img7

  • Haga clic en Insertar y luego en Módulo

img8

  • Esto creará un nuevo módulo.

  • Ingrese el siguiente código en el Módulo Sub VBASumifs () mysalesman = [H3] myregion = [H4] myproduct = [H5]

tsales = Application.WorksheetFunction.SumIfs ([nsales], [nsalesman], mysalesman, [nregion], myregion, [nproduct], myproduct)

[H6] = tsales End Sub

img9

Haga clic en Insertar cinta> Formas> Dibujar una imagen Haga clic derecho en la imagen y haga clic en asignar macro

img10

img11

  • Después de asignar la macro; haga clic en el botón Actualizar ventas y obtendremos el resultado en la celda H6

img12

Nota: – Después de cambiar el nombre del vendedor, la región y el producto, debe hacer clic en actualizar ventas.

Para conocer las Ventas que cumplen las condiciones entre 2 fechas; A continuación se muestra la instantánea de los criterios:

img13

Usaremos el siguiente código:

Sub Sumifs2Dates ()

misvendedor = [H3] myregion = [H4] myproduct = [H5]

stdate = [H6]

EndDate = [H7]

tsales = Application.WorksheetFunction.SumIfs ([nsales], [nsalesman], mysalesman, [nregion], myregion, [nproduct], myproduct, [ndate], «> =» & stdate, [ndate], «⇐» & EndDate)

[H8] = tsales End Sub

img14

  • Presionando ALT + F8 tecla de atajo para abrir la ventana Macro y luego seleccionar la macro.

  • Alternativamente, puede presionar F5 para ejecutar el código en la pantalla VBA.

  • Después de ejecutar la macro obtendremos la salida en la celda H8

img15

Así es como podemos usar múltiples criterios SUMIF en VBA para calcular las ventas totales entre 2 fechas.