jueves, 9 de septiembre de 2010

Cálculo de Número de Días


"Necesito calcular, cada día, cuántos días llevan transcurridos desde el 1 de enero del año en curso y los días que faltan para concluir el año ¿hay alguna función que realice estos cálculos?"

No existe ninguna función directa que realice estos cálculos, pero la solución es bien sencilla utilizando las funciones FECHA y AÑO. Supongamos que deseamos contar con la siguiente información actualizada diariamente:


1. la fórmula de B2 es muy sencilla:

=HOY()

2. La fórmula de B3 es igualmente sencilla utilizando la función NUM.DE.SEMANA Esta función tiene tan sólo dos argumentos NUM.DE.SEMANA(Num_de_serie;Tipo). El primer argumento se refiere a la fecha de la que queremos saber el número de semana del año que le corresponde. El segundo argumento sirve para determinar el tipo de semana, esto es, si la semana comienza el domingo, en cuyo caso escribiremos el valor 1, o si queremos considerar semanas cuyo primer día sea el lunes, en cuyo caso el valor de este argumento será 2. Así las cosas, la fórmula resultante será:

=NUM.DE.SEMANA(B2;2)

3. Para calcular los días transcurridos desde el 1 de enero del año en curso hasta la fecha actual, utilizamos la siguiente fórmula:

=B2-FECHA(AÑO(B2);1;1) Si queremos añadir un texto descriptivo al resultado podemos utilizar el operador & (CONCATENAR):
=B2-FECHA(AÑO(B2);1;1)&" días desde principio del año"

4. Finalmente para saber cuántos días restan para concluir el año en curso:
=FECHA(AÑO(B2);12;31)-B2 Añadiendo un texto descriptivo sería:
=FECHA(AÑO(B2);12;31)-B2&" días para terminar el año"



Si queremos mantener esta información siempre visible en la hoja, podemos utilizar la opción de Inmovilizar Paneles. Para ello nos situamos en la celda A7 y vamos al menú Ventana/Inmovilizar Paneles. Aparecerá un borde superior en toda la fila 7 quedando inmovilizadas las celdas que se encuentren por encima de dicha linea.

miércoles, 8 de septiembre de 2010

Repetición de Caracteres Concretos en una Celda


Pues parece que fue ayer pero ya ha pasado más de un mes desde mi última entrada. Prometí a mis hijos no acercarme a una hoja de cálculo durante las vacaciones y... ¡casi lo cumplo!

Me habéis mandado numerosas preguntas (supongo que debo daros las gracias...) que intentaré contestar lo antes posible. Una de las más repetidas ha sido la siguiente:

"Necesito saber el número de espacios en blanco que contiene un grupo de celdas".

Vamos a utilizar una fórmula bastante sencilla, que sé que leí hace tiempo en algún lado pero no recuerdo donde, con las funciones LARGO y SUSTITUIR. Partimos del siguiente ejemplo:


Queremos saber cuántos espacios en blanco contiene cada celda (cuestión que aunque no lo parezca puede resultar muy útil para, por ejemplo, realizar fórmulas que separen en distintas celdas los nombres y los apellidos). Lo que vamos a hacer en esencia es:

1. Contar el número total de caracteres que contiene la celda B3
2. Borrar todos los espacios en blanco del texto de B3 y escribir el resultado en C3.
3. Contar el número total de caracteres de C3.
4. Hallar la diferencia entre ambos totales. Dicha diferencia será, obviamente, el número de espacios en blancos que tiene la celda B3.

Vamos a empezar, con el objetivo de que se entienda mejor, por el paso 2. Para ello utilizaremos la función SUSTITUIR. Esta función sustituye dentro de una cadena de texto un texto original por otro nuevo específico. La sintaxis de esta función es:

SUSTITUIR(texto;texto_original;texto_nuevo; núm_de_ocurrencia)

Texto:es el texto o la referencia a una celda que contiene texto en el que desea sustituir caracteres.

Texto_original: es el texto que desea reemplazar.

Texto_nuevo: es el texto por el que desea reemplazar texto_original.

Núm_de_ocurrencia: especifica la instancia de texto_original que desea reemplazar por texto_nuevo. Si especifica el argumento núm_de_ocurrencia, sólo se remplazará esa instancia de texto_original. De lo contrario, todas las instancias de texto_original en texto se sustituirán con texto_nuevo.

Así las cosas, nos situamos en la celda C3 y escribimos la siguiente fórmula:

=SUSTITUIR(B3;" ";"") Fíjese que el segundo argumento es "espacio" y que el tercero es "" sin ningún espacio. Le estamos pidiendo a excel que sustituya los espacios en blanco que se encuentre por nada. El resultado de esta fórmula será este:


Como puede comprobar, el contenido de la celda C3 es el mismo que el de la celda B3 pero sin espacios en blanco.

Una vez hecho esto el resto es muy sencillo. Sólo nos queda "medir" el largo de ambas celdas y hallar la diferencia. Para ello hacemos lo siguiente:

en D3 escribimos: =LARGO(B3)
en E3 escribimos: =LARGO(C3)
en F3 escribimos: =B3-C3

¡Problema resuelto! Evidentemente si sólo necesitamos el número de espacios en blanco podemos resumir todas estas fórmulas en la siguiente (que escribo en la celda C3):

=LARGO(B3)-LARGO(SUSTITUIR(B3;" ";""))


En este caso hemos contado el número de espacios en blanco pero puede utilizar esta fórmula con otros caracteres simplemente sustituyendo la expresión " " por "a" ,por ejemplo.