Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como utilizar WorksheetFunction SumIfs o Sumar Si Conjunto


(adsbygoogle = window.adsbygoogle || []).push({});

En este post WorksheetFunction funciones de Excel en VBA se dijo que WorksheetFunction tiene por objeto ejecutar casi todas las funciones que trae incorporadas Excel, es decir se puede agregar en una macro y echar manos a estas funciones, luego se expuso un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA, en el post como se usa la función o WorksheetFunction SumIf o SumarSi se expuso un ejemplo sobre como utilizar dicha función en una macro, ahora voy a mostrar como se utiliza la función SumIfs o SumarSi.Conjunto, la diferencia entre las SumIf y SumIfs o SumarSi y SumarSi.Conjunto, radica en que, con la primer función se pueden utilizar varios criterios, hasta 30; en cambio con la última función solo sirve para un solo criterio a la vez; en Funciones de Excel descripción y traducción al inglés y otros idiomas, encontrarás listadas y con una breve explicación sobre que realiza cada una de las funciones de Excel.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  

La función SumIfs permite sumar las celdas de un rango que cumplen uno o varios criterios especificados, permitiendo la función sumar utilizando un máximo de 30 criterios; la sintaxis es la siguiente:

WorksheetFunction.SumIfs(Arg1, Arg2, Crit2, Arg3, Crit3, Arg4, Crit4,………, Arg30, Crit30)

El significado de los parámetros son:

Arg1, es un dato obligatorio, representa el rango que se desea sumar.

Arg2 a Arg30, dato obligatorio que indica el rango que se debe analizar o evaluar, recordemos que se pueden usar hasta treinta argumentos o rangos.

Crit2 a Crit30, también es un dato obligatorio y establece cual es el criterio o criterios en forma de número, expresión o texto, que determinan las celdas que se deben sumar, los criterios se pueden expresar como 12, «12», «<12» o «palmeras». En los criterios se pueden usar caracteres comodín (?) y (*); donde el «?» corresponde a un solo caracter y el «*» a una cadena de caracteres, si lo que se desea buscar es (?) o (*) se debe escribir un tilde (~) antes del caracter.

El ejemplo de macro de VBA que se presenta, tiene como fin enseñar como se usa la WorksheetFunction SumIfs o Sumar Si Conjunto; en este ejemplo se deben evaluar dos criterios a la vez para determinar que celdas sumar; en primer lugar establece cual es la última fila con datos, en esa fila y columna A se va a colocar el resultado; luego en la macro se coloca el código que va a determinar que celdas sumar y cuales no y que es el siguiente: Application.WorksheetFunction.SumIfs(Range(«A2» & «:A» & uf – 1), Range(«B2» & «:B» & uf – 1), «> 0», Range(«C2» & «:C» & uf – 1), «> 0»); como vemos en la codificación del ejemplo, el valor determinado es ingresado en la celda determinada por la columna A y la última fila con datos determinada mediante la variable «uf».

Analizando la función veremos que Range(«A2» & «:A» & uf – 1), es el rango que se desea sumar; luego Range(«B2» & «:B» & uf – 1), es el primer criterio de búsqueda; luego se agrega el primer criterio que se va a usar para evaluar el rango del primer criterio, «> 0»; posteriormente se establece el segundo rango a analizar, Range(«C2» & «:C» & uf – 1) y seguidamente el segundo criterio del ejemplo, recordemos que se pueden ingresar hasta 30 criterios, en este caso también se debe evaluar que sea mayo a cero, «> 0».

Posteriormente aparece un Msgbox, si quieres aprender sobre como crear msgbox click en el link; en el Msgbox se establece que aparezca un mensaje avisando a cuanto asciende la suma según los criterios datos, con el detalle que aparece con un formato numérico con separador de miles, es decir «626.004,75».

El ejemplo de macro que utiliza WorksheetFunction SumIfs se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice «Macro» y se ejecuta la suma con las dos condiciones señaladas anteriormente, si se desea seguir probando la macro basta con modificar los datos y se la macro calculará nuevamente la suma condicional.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.




function onYtEvent(payload) {
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}





Código que se inserta en un userform

Sub SumIfs()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
uf = Sheets(«Hoja1»).Range(«A» & Rows.Count).End(xlUp).Row
Cells(uf, «A») = Application.WorksheetFunction.SumIfs(Range(«A2» & «:A» & uf – 1), Range(«B2» & «:B» & uf – 1), «> 0», Range(«C2» & «:C» & uf – 1), «> 0»)
Cells(uf, «A»).NumberFormat = «#,##0.00»
MsgBox («Las ventas suman » & Format(Cells(uf, «A»), «#,##0.00»)), vbInformation, «AVISO»
DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


(adsbygoogle = window.adsbygoogle || []).push({});

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Entradas relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comentarios (35)

Necesito de forma urgente pasar esta formula a macro

=SUMAR.SI.CONJUNTO(M:M;F:F;F2;K:K;K2)

de ante mano mil gracias!!!!!

Responder

hola fijate en mi canal playlist worksheetfuncion en excel
⏩⏩ SUSCRIBE https://www.youtube.com/c/programarexcel?sub_confirmation=1

Responder

I am the manager of JustCBD company (justcbdstore.com) and am planning to grow my wholesale side of business. I am hoping anybody at targetdomain can help me ! I thought that the most effective way to do this would be to connect to vape stores and cbd retail stores. I was hoping if anyone could recommend a trustworthy web site where I can purchase CBD Shops B2B Sales Leads I am already taking a look at creativebeartech.com, theeliquidboutique.co.uk and wowitloveithaveit.com. On the fence which one would be the very best option and would appreciate any support on this. Or would it be easier for me to scrape my own leads? Ideas?

Responder

С какими расходами связана процедура и данное действие субсидиарная ответственность тема знакома каждому бенефициару

Responder

You ought to be a part of a contest for one of the most useful sites on the internet. I most certainly will highly recommend this website!

Responder

I love looking through a post that will make people think. Also, many thanks for allowing for me to comment!

Responder

I blog frequently and I genuinely thank you for your content. This great article has truly peaked my interest. I will take a note of your website and keep checking for new information about once a week. I subscribed to your Feed too.

Responder

Good day! I could have sworn I’ve visited this blog before but after going through some of the posts I realized it’s new to me. Anyways, I’m certainly pleased I discovered it and I’ll be bookmarking it and checking back often!

Responder

You need to take part in a contest for one of the finest blogs on the web. I’m going to highly recommend this blog!

Responder

Howdy, I believe your website could be having internet browser compatibility problems. When I look at your site in Safari, it looks fine but when opening in I.E., it has some overlapping issues. I simply wanted to provide you with a quick heads up! Apart from that, wonderful website!

Responder

Your style is really unique compared to other people I have read stuff from. I appreciate you for posting when you’ve got the opportunity, Guess I will just book mark this web site.

Responder

I really like it when folks get together and share opinions. Great website, stick with it!

Responder

Hi, I do think this is a great site. I stumbledupon it 😉 I may come back once again since i have book marked it. Money and freedom is the best way to change, may you be rich and continue to guide other people.

Responder

This page truly has all the info I needed about this subject and didn’t know who to ask.

Responder

I would like to thank you for the efforts you have put in penning this blog. I really hope to view the same high-grade content from you in the future as well. In truth, your creative writing abilities has motivated me to get my very own website now 😉

Responder

You’re so cool! I don’t think I’ve truly read anything like that before. So wonderful to find somebody with genuine thoughts on this issue. Really.. many thanks for starting this up. This site is one thing that is required on the internet, someone with a bit of originality!

Responder

Great information. Lucky me I recently found your site by chance (stumbleupon). I’ve saved it for later!

Responder

An intriguing discussion is definitely worth comment. I do believe that you should write more about this topic, it might not be a taboo subject but generally people do not discuss these topics. To the next! All the best!!

Responder

There’s certainly a lot to know about this issue. I love all the points you have made.

Responder

I used to be able to find good advice from your blog posts.

Responder

You’re so interesting! I do not think I’ve truly read anything like that before. So great to find somebody with some original thoughts on this subject. Really.. thanks for starting this up. This site is something that’s needed on the web, someone with a little originality!

Responder

That is a really good tip particularly to those new to the blogosphere. Simple but very accurate information… Thanks for sharing this one. A must read article!

Responder

Way cool! Some very valid points! I appreciate you writing this post and also the rest of the site is really good.

Responder

Oh my goodness! Impressive article dude! Thanks, However I am encountering difficulties with your RSS. I don’t know why I cannot subscribe to it. Is there anybody getting identical RSS issues? Anybody who knows the solution will you kindly respond? Thanks!!

Responder

It’s difficult to find knowledgeable people in this particular subject, but you seem like you know what you’re talking about! Thanks

Responder

I blog quite often and I really appreciate your content. Your article has really peaked my interest. I am going to take a note of your website and keep checking for new details about once a week. I opted in for your Feed as well.

Responder

Pretty! This has been a really wonderful post. Thanks for providing these details.

Responder

It’s hard to find educated people in this particular subject, but you seem like you know what you’re talking about! Thanks

Responder

Pretty! This has been a really wonderful post. Thanks for supplying this info.

Responder

I wanted to thank you for this great read!! I definitely enjoyed every bit of it. I have you book marked to check out new stuff you post…

Responder

This is a really good tip especially to those fresh to the blogosphere. Brief but very precise information… Many thanks for sharing this one. A must read post!

Responder

Excellent, what a blog it is! This website
gives valuable facts to us, keep it up.

Responder

I really like what you guys are up too. This
type of clever work and coverage! Keep up the amazing works guys I’ve incorporated
you guys to my own blogroll. adreamoftrains best web hosting sites

Responder

Spot on with this write-up, I seriously believe that this web site
needs a lot more attention. I’ll probably be back again to read more,
thanks for the advice!

Responder

The next time I read a blog, Hopefully it does not fail me as much as this one. I mean, Yes, it was my choice to read through, nonetheless I truly believed you’d have something interesting to say. All I hear is a bunch of complaining about something that you can fix if you weren’t too busy looking for attention.

Responder