Quien quiera más información sobre funciones y cálculos con fechas y horas, puede apretar el enlace Fechas y Hora en el área de etiquetas del blog (en la columna a la izquierda).
Un lector me consulta cómo obtener los días de una semana si sólo sabemos el año y el número de semana.
Supongamos que tenemos el año en la celda B1 de la hoja y el número de semana en la celda B2
Empezamos por calcular el primer día del año con la fórmula =FECHA(B1;1;1)
Cada semana tiene necesariamente 7 días, así que podemos calcular el número de días transcurridos hasta el fin de la semana que aparece en la celda B2, con la fórmula =B2*7
Como pueden apreciar, el resultado es incorrecto. Hemos agregado el control Calendario, para poder controlar el resultado de nuestra fórmula.
Lo que queremos obtener es el primer lunes de la semana, para lo cual tendremos que hacer algunas correcciones a nuestra fórmula.
La corrección la calculamos con esta fórmula
=(1>=DIASEM(FECHA(B1;1;1))*7)+1-DIASEM(FECHA(B1;1;1))
Sumamos este resultado al de nuestra fórmula original y obtenemos el último día de la semana buscada
Ahora tenemos que llevar el resultado al primer día, para lo cual todo lo que tenemos que hacer es restar 6 del resultado obtenido
Nuestra fórmula final será
=FECHA(B1;1;1)+(B2*7)+(1>=DIASEM(FECHA(B1;1;1))*7)+1-DIASEM(FECHA(B1;1;1))-6
Esta fórmula siempre nos dará el primer lunes de la semana. Por ejemplo, si buscamos la primer semana del 2008, el primer día es, obviamente, el 01/01/2008. Pero el primer lunes de esa semana es el 31/12/2007
Si queremos extraer las fechas por semanas a partir del primer día del año, es decir, por intervalos de 7 días, tenemos que usar esta fórmula
=FECHA(B1;1;1)+(B2*7)-7
El archivo con el ejemplo se puede descargar aquí
Technorati Tags: MS Excel
Hola Jorge, se podría con un sistema parecido controlar por ejemplo las vacaciones del personal de una empresa?
ResponderBorrarun cordial saludo y enhorabuena!!
Hola
ResponderBorraren principio, si. Pero tendrías que ser más explícito en relación al modelo que quieres hacer.
Bueno, el control de vacaciones lo llevo en excel pero muy rudimentariamente. Viendo tu aportación intuyo se podría automatzar mucho su control trabajando sobre el calendario en las vacaciones devengadas y las que restan por disfrutar. Con algún tipo de report final. Voy a intentar trabajar en ello aunque cualquier aportacion será bien recibida
ResponderBorrarHola Jorge
ResponderBorrarPor simplificar (y entender mejor) la fórmula:
=(1>=DIASEM(FECHA(B1;1;1))*7)+1-DIASEM(FECHA(B1;1;1))
La primera parte (1>=DIASEM(FECHA(B1;1;1))*7) siempre va a dar 0 porque la segunda parte de la comparación no puede ser nunca menor de 7, por lo que la fórmula se podría quedar en:
=1-DIASEM(FECHA(B1;1;1))
Y daría el factor de corrección. Indícame si estoy en lo cierto o si estoy metiendo la pata.
Un saludo
Tu corrección funciona. No me acuerdo por qué armé semejante esperpento de fórmula.
ResponderBorraruna pregunta como aria si solo tengo año y mes y quiero calcular que nro de dia caera el domingo...sabado en un calendario q formula puedo utilizar, me pueden ayudar gracias de antemano
ResponderBorrarEn esta nota muestro una técnica pra hacer ese tipo de cálculos (donde dice "Calcular la fecha de un día determinado, dado el mes y el año").
ResponderBorrarY ahora una observación importante: es la última vez que respondo a una consulta con tanto desprecio por el idioma castellano. No hay ningún motivo para no poner un poco de atención a la ortografía ("aria" es una pieza musical!!!) o para usar abreviaciones como "q" en lugar de "que". Además el castellano hace uso de los acentos. Y evito mencionar los signos de puntuación.
El mismo empeño que pongo en responder a las consultas, espero que mis lectores pongan en presentarlas.
Para el año 2012 ó 2017 no valdría no? El día 1 de 2017 corresponde a domingo, sin embargo con esa fórmula te lo incluiría como 25/12/2017 y no como 26/12/2016 que es el lunes de esa semana,
ResponderBorrar¿lo puedes confirmar?
Gracias!
Prueba con estas formulas:
ResponderBorrarpara el primer dia (semana empieza en lunes)
=FECHA(B1,1,1)+(B2*7)+1-DIASEM(FECHA(B1,1,1),1)-6
para el ultimo dia
=FECHA(B1,1,1)+(B2*7)+1-DIASEM(FECHA(B1,1,1),1)
La diferencia es usar el valor 1 para el segundo parametro de DIASEM