martes, 22 de febrero de 2011

Construir criterios en las funciones de Excel.

Es importante no olvidar nunca los pequeños detalles de nuestras funciones que nos facilitan un poco la vida; es el caso de la contrucción de los criterios en las funciones.
Al hilo de un correo recibido:

...Me gustaría saber cómo puedo hacer para que el criterio de un sumar.si, sea que NO se cumpla algo. Es decir, algo asi: SUMAR.SI(E12:E17;NO"X";D12:D17): que se sumen aquellas celdas que NO tengan una "X"...



Respondiendo en primer lugar a nuestro lector, diré que sí es posible. El criterio de suma que busca nuestro amigo, i.e., el 'NO "X"' equivaldría en lenguaje Excel a '"<>X"'; y por tanto la función de suma condicionada quedaría:
=SUMAR.SI(E12:E17;"<>X";D12:D17)
que indicaría que sumara del rango D12:D17 todos aquellos importes correspondientes a los elementos del rango E12:E17 diferentes de 'X'.
Otra forma hubiera sido:
=SUMA(B2:B6)-SUMAR.SI(A2:A6;"X";B2:B6)
donde, en lugar de calcularlo directamente, lo hacemos por exclusión.
También podríamos haberlo calculado con la función =BDSUMA(base_datos;nombre_campo; criterios) pero necesitaríamos un rango de criterio.


Pero cómo podemos emplear los comodines estándar (* y ?) y los operadores condicionales (<, >, =, etc) de Excel en estos criterios, tanto para valores de texto como para numéricos.
Los más habituales son los operadores condicionales (<, >, =); por ejemplo:
=SUMAR.SI.CONJUNTO($D$2:$D$11;motivo;"Operativa";oper;">=2471346";oper;"<=2471600";recibida;"INSAT*")
visto en el post http://excelforo.blogspot.com/2010/02/sumas-condicionadas-sumarsiconjunto.html; donde veíamos como en la función SUMAR.SI.CONJUNTO acumulabamos importes para cantidades superiores a 2471346 (">=2471346") pero inferiores a 2471600 ("<=2471600").
En el mismo ejemplo, como última condición, vemos el criterio "INSAT*", que habilitaba la suma de aquellas coincidencias de elementos que comenzaban por 'INSAT'.


Veamos otro ejemplo, donde nuestra base de datos a estudio es:


haz click en la imagen


Usando los asteriscos en diferentes posiciones '*c': elementos que terminen en 'c'; o 'c*': elementos que comiencen en 'c'; o bien '*c*': elementos que contenga una 'c' en cualquier posición.
Sólo recordar la diferencia entre el comodín asterisco '*' que replica varios caracteres, y el comodín '?' que indica únicamente un caracter.

5 comentarios:

Nota: solo los miembros de este blog pueden publicar comentarios.