viernes, 9 de marzo de 2012

Resaltar Duplicados en Distintas Hojas

"Necesito resaltar texto duplicado entre varias hojas. Por ejemplo, tengo una lista de 80 nombres en la hoja 1 y en la hoja 2 otra lista de 80 nombres y quiero resaltar los nombres duplicados entre las dos hojas".

No problemo. Para solucionar este problema utilizaremos el Formato Condicional y la función CONTAR.SI. Partimos del siguiente ejemplo en donde nos encontramos una lista de 13 nombres en la hoja 1 y otra lista con 10 nombres en la hoja 2:



Los pasos que debemos seguir a continuación son los siguientes:

1. Seleccionamos en la hoja 1 el rango B3:B15 y dentro de la ficha Inicio vamos al módulo de Estilos y pulsamos el icono de Formato Condicional. De la lista que se abre seleccionamos nueva regla.


2. En la ventana que se abre seleccionamos Utilice una fórmula que determine las celdas para aplicar formato (la última opción de la lista):


3. Nos situamos en Dar formato a los valores donde esta fórmula sea verdadera y escribimos la siguiente fórmula:

=CONTAR.SI(Hoja2!$B$3:$B$12;B3)>0

4. Acabamos pulsando el Botón Formato. Ahora seleccionaremos el formato con el que queremos que resalte excel los nombres repetidos. En nuestro ejemplo le pediremos relleno violeta y color de fuente blanco y negrita. Aceptamos y problema resuelto:


sábado, 21 de enero de 2012

Personalizando Fórmulas con Validación de Datos

"He leído el anterior artículo y me gustaría saber si hay forma de limitar la entrada de datos, por medio de la validación de datos, para conseguir que no permita introducir un código en la celda si no cumple la siguientes reglas: a)que el número total de caracteres sea de siete; b) que los dos primeros caracteres sean dos letras y estén escritos en mayúscula; c) que los siguientes caracteres sean 5 números."

Lo que queremos conseguir requiere del uso de la herramienta Validación de Datos por un lado y del uso de unas cuantas funciones para garantizar que se cumplen todas las restricciones indicadas por nuestro lector. En concreto, las restricciones que debe contemplar la fórmula que realicemos son:

1. Que el número de caracteres totales introducidos ha de ser 7
2. Que los dos primeros caracteres han de ser texto
3. Que los dos primeros caracteres han de ser mayúsculas
4. Que los caracteres del 3 al 7 han de ser números

Supongamos que tenemos una zona de introducción de datos como la mostrada en la siguiente imagen:


Lo que debemos hacer es seleccionar el rango B4:B12 que es nuestra zona de entrada de datos. Vamos a la ficha Datos/Validación/Validación de Datos y seleccionamos Permitir Personalizada. En Fórmula escribimos la siguiente (es un poco larga):

=Y(LARGO(B4)=7;IGUAL(B4;MAYUSC(B4));ESERROR(VALOR(EXTRAE(B4;1;1)));
ESERROR(VALOR(EXTRAE(B4;2;1)));
ESERROR(VALOR(EXTRAE(B4;3;5)))=FALSO)=VERDADERO

Voy a explicar las distintas funciones y partes de la fórmula. Empezamos con la función Y. Esta función nos sirve para comprobar si se cumplen una serie de pruebas que vamos a realizar. En caso de que se cumplan todas las pruebas que realicemos el valor que nos devolverá esta función será VERDADERO y en caso contrario FALSO (precisamente por este motivo podemos utilizarla dentro de validación de datos como fórmula personalizada).

La primera prueba que realizamos es la de el número total de dígitos. Para ello hacemos uso de la función LARGO, que nos devuelve el número de caracteres existentes en una celda, y comprobamos si es igual a 7.

La segunda comprobación que realizamos es si los dos primeros caracteres son mayúsculas. Para ello utilizamos la función IGUAL y la función MAYUSC. La función IGUAL comprueba si dos cadenas de texto son idénticas o no diferenciando entre mayúsculas y minúsculas.

Ahora comprobamos si los dos primeros caracteres son letras. Para ello debemos extraer dichos 2 caracteres para analizarlos. Hacemos uso de la función EXTRAE. Al utilizar esta función excel considera como texto los caracteres extraídos. En caso de que se trate de números será sencillo convertirlos nuevamente haciendo uso de la función VALOR. Finalmente utilizo la función ESERROR para comprobar que si tras convertir los dos primeros caracteres a número me devuelve un mensaje de error sólo puede ser debido a que se trate de texto. La misma operación pero al revés, es decir, comprobando que el valor devuelto es FALSO, resolverá la última parte de la fórmula donde verifico que los últimos 5 dígitos son números.

Una vez introducida esta fórmula en la validación de datos ya puede comprobar que el funcionamiento es el deseado y que sólo nos permitirá introducir valores correctos. Cada vez que cometamos un error nos aparecerá el mensaje que definamos dentro de la validación de datos, tal y como se muestra en los siguientes ejemplos:



miércoles, 16 de noviembre de 2011

Evitar Espacios Innecesarios al Introducir Textos

"Quisiera saber si hay alguna manera de evitar que por descuido se puedan introducir espacios al principio y al final de una introducción de texto en una celda de Excel y de igual forma impedir que se introduzca más de un espacio entre dos palabras".

Vamos a resolver este problema de una manera bien sencilla con dos funciones (ESPACIOS y LARGO) y una herramienta (Validación de datos). Partimos del siguiente ejemplo:


Lo que queremos conseguir es que si al introducir texto en las celdas de entrada (en este ejemplo rango B3:B7) introducimos espacios en blanco, ya sea al principio, al final o en el medio excel nos devuelva un mensaje de error y no nos permita continuar hasta que corrijamos dicho problema. Como se puede ver en la siguiente imagen, si introducimos espacios innecesarios en la entrada de texto, excel nos devuelve el mensaje de error correspondiente:


Para conseguir esto tenemos que seguir los siguientes pasos:

1. Seleccionamos el rango B3:B7
2. Vamos al menú Datos/Validación de datos
3. En Criterio de validación/Permitir seleccionamos la opción de Longitud de texto.
4. En Criterio de validación/Datos seleccionamos Igual a.
5. En Criterio de validación/Longitud escribimos la siguiente fórmula:

=LARGO(ESPACIOS(B3))


6. En la pestaña de Mensaje de error seleccionamos el Estilo Límite o Grave (según la versión) y personalizamos el mensaje que queremos que aparezca si cometemos un error.


Espacios(B3) quita todos los espacios del texto excepto los espacios entre palabras. La función Largo cuenta el número de caracteres que hay en una celda. Al anidar la función Espacios dentro de la función Largo LARGO(ESPACIOS(B3)) lo que estamos haciendo es calcular el número de caracteres que tiene una entrada de texto una vez hecha la limpieza de espacios en blanco innecesarios. Si dicho número coincide con la longitud del texto que introducimos en B3 entonces significará que no hay espacios en blanco y que, por lo tanto, la entrada es correcta. Si por el contrario el número de caracteres que tiene la entrada de texto difiere del calculado por la fórmula explicada entonces sólo puede ser debido a que existan espacios en blanco que deben ser corregidos.

sábado, 3 de septiembre de 2011

Cálculo Acumulados con Referencias Mixtas

"Me gustaría me dijeses como puedo realizar acumulados parciales para poder compararlos. Me explico; tengo una hoja con las ventas realizadas, en las columnas los meses y el total año, y en las filas los años (2009, 2010, 2011...). Me gustaría hacer otra columna que acumule parcialmente al último dato introducido, es decir, si el último dato que tengo es agosto 2011, que en la columna de acumulado me refleje el acumulado por año al mes de agosto para poder comparar un año con otro".

La solución es bastante sencilla utilizando un condicional y las Referencias Mixtas dentro de la función SUMA. Empecemos por el ejemplo de partida:


Lo que queremos conseguir es replicar la tabla de la imagen pero que vaya presentando la cifra de ventas acumulada para cada mes de cada año, a medida que vayamos introduciendo nuevos datos. Para ello primero creamos la tabla que se muestra a continuación:


Nos situamos en la celda H5 y escribimos la siguiente y única fórmula (cosa posible gracias al correcto uso de las referencias mixtas):

=SI($E5="";"";SUMA(B$5:B5))

Podemos copiar esta fórmula para el resto de la tabla y problema resuelto. Cuando vayamos introduciendo el último dato de ventas, en nuestro ejemplo agosto 2011, nos irá mostrando las cifras de ventas acumuladas para los distintos años y meses hasta agosto 2011:

sábado, 19 de marzo de 2011

Sumar Matrices

"Me gustaría saber qué métodos se pueden aplicar para sumar y restar matrices".

Básicamente podemos utilizar dos métodos. Cualquiera de los dos son muy sencillos. A saber:
1. Con la función SUMA
2. Fórmula Matricial

Supongamos que partimos del siguiente ejemplo:


Queremos proceder a sumar las cuatro matrices M1+M2+M3+M4. Utilizando el método más conocido simplemente nos situamos en la celda F24 y escribimos la fórmula (podemos utilizar la selección discontinua para seleccionar dichas celdas):

=SUMA(B3;B10;F3;F10)

Posteriormente copiamos esta fórmula hasta la celda H24 y finalmente la copiamos hacia abajo hasta la celda H28.

También podemos resolver esta suma utilizando fórmulas matriciales. Para ello nos situamos en la celda F17 y seleccionamos el rango F17:H21. Con el rango seleccionado escribimos la fórmula:

=B3:D7+B10:D14+F3:H7+F10:H14

y finalizamos pulsando (ya que se trata de entrada matricial) ctrl + shift + enter.