lunes, 17 de septiembre de 2012

La función IGUAL

Para Excel no hay diferencia entre un texto escrito en mayúscula o en minúscula. Por ejemplo, si en A1 escribimos Gabriel García Márquez y en A2 escribimos GABRIEL GARCÍA MÁRQUEZ, la fórmula =A1=A2 devolverá VERDADERO. El operador igual (=) no distingue entre mayúsculas y minúsculas. Ocurre igual con otras funciones.

Si necesitamos diferenciar mayúsculas de minúsculas debemos usar la función IGUAL. Por ejemplo, si sustituimos la fórmula anterior por la siguiente: =IGUAL(A1;A2), el resultado es FALSO.

Veremos cómo usar la función IGUAL con un ejemplo.

En la columna B hay repetidos los nombres de dos ciudades pero, en algunos casos, la primera letra está escrita en minúscula. En la columna C hemos puesto unos números arbitrarios.

En F2 pondremos el nombre de una ciudad. En F5 y en las celdas inferiores calcularemos, por varios métodos, cuántas veces aparece esa ciudad (coincidencia exacta).

En F2:
Burgos

La primera reacción para saber cuántas veces está escrita la palabra Burgos en la columna B es utilizar la función CONTAR.SI, pero es una elección incorrecta. Comprobémoslo.

En F5:
=CONTAR.SI(B3:B14;F2)    [Resultado incorrecto: 7]

La función CONTAR.SI es una de tantas funciones que no distinguen entre mayúsculas y minúsculas; no nos sirve.

Probemos otra solución.

En F6:
=CONTAR(SI(IGUAL(B3:B14;F2);C3:C14;""))    [Terminar con Ctrl + Mayúscula + Intro]

En este caso la respuesta es correcta. Veamos lo que hace la fórmula.
  • IGUAL(B3:B14;F2) compara cada elemento del rango B3:B14 con el valor que hemos puesto en la celda F2 y devuelve una matriz de valores VERDADERO y FALSO. VERDADERO cuando la coincidencia es exacta; FALSO cuando no hay coincidencia exacta.
  • La función SI toma esta matriz y, si el valor es VERDADERO, devuelve el número correspondiente del rango C3:C14; en caso contrario, devuelve un blanco (""). Por tanto, devuelve otra matriz.
  • la función CONTAR cuenta los números que hay en esta última matriz, devolviendo las veces que la palabra Burgos está escrita exactamente igual en la columna B.
Si no existiera la columna C o no quisiéramos usarla, podríamos usar esta fórmula:

En F7:
=CONTAR(SI(IGUAL(B3:B14;F2);1;""))    [Terminar con Ctrl + Mayúscula + Intro]

En este caso, la función SI no devuelve el valor de la columna C, sino un uno (podemos poner cualquier otro número) o un blanco (""). De este modo, devolverá tantos unos como veces esté escrita la palabra de la celda F2. Después, CONTAR contará los unos que hay y devolverá el resultado correcto. Como es lógico, podemos sustituir CONTAR por SUMA.

En F8:
=SUMA(SI(IGUAL(B3:B14;F2);1;""))    [Terminar con Ctrl + Mayúscula + Intro]

En realidad, ni siquiera necesitamos usar la función SI.

En F9:
=SUMA(--IGUAL(B3:B14;F2))    [Terminar con Ctrl + Mayúscula + Intro]

Puesto que la función IGUAL nos ha dado una matriz de valores VERDADEROS y FALSOS, bastará sumarlos (recordamos que VERDADERO equivale a 1 y FALSO equivale a 0) y directamente nos dará el resultado. La transformación de valores lógicos a numéricos se hace, como se ha explicado en otro artículo, multiplicando por uno o poniendo dos signos menos delante.

Todas las fórmulas correctas empleadas en el ejercicio son fórmulas matriciales. Si no queremos utilizar una fórmula matricial, bastará sustituir SUMA por SUMAPRODUCTO.

En F10:
=SUMAPRODUCTO(--IGUAL(B3:B14;F2))    [Terminar con Intro]




No hay comentarios:

Publicar un comentario