sábado, noviembre 24, 2012

Calcular al número de semana dentro del trimestre

En un comentario en la nota Calcular trimestres con Excel me pregunta un lector:

¿existe alguna fórmula que permita calcular el número de semana, pero no anual, sino dentro de un trimestre?

Excel no tiene una función nativa para este cálculo, pero podemos crear una fórmula como ésta:

=NUM.DE.SEMANA(A2)-NUM.DE.SEMANA(BUSCAR(A2;FECHA(AÑO(A2);{1;4;7;10};1)))+1

Esta imagen muestra algunos ejemplos



Así, por ejemplo, el 25/05/2012 corresponde al segundo trimestre del año; es la semana número 21 del año pero la octava semana del trimestre.

La idea de la fórmula es restar el número de semanas transcurridas hasta el primer día del semestre en cuestión del número de semana en el año de la fecha buscada.

Esta fórmula funciona así:

1 - =NUM.DE.SEMANA(A3) calcula el número de semana del año, en nuestro caso 21.

2 - BUSCAR(A3;FECHA(AÑO(A3);{1;4;7;10};1)) calcula el primer día del trimestre correspondiente a la fecha en A3. La expresión FECHA(AÑO(A3);{1;4;7;10}; crea una matriz con los primeros días de cada trimestre ({1;4;7;10} es una constante matricial). Así para la fecha 25/05/2012, esta fórmula da como resultado 01/04/2012.

3 - NUM.DE.SEMANA(BUSCAR(…) calcula el número de semana del primer día del semestre; en nuestro ejemplo, 14.

4 – Restamos este último resultado del número de semana en el año y sumamos uno para corregir el resultado.

5 comentarios:

  1. Muy interesante. ¿Alguna forma más elegante para calcular el trimestre que esta?

    =REDONDEAR.MAS(MES(A2)/3;0)

    ResponderBorrar
  2. ¿Qué sería más elegante? En la nota mencionada propongo, además de la que aparece en esta nota, esta otra fórmula

    =COINCIDIR(MES(A1),{1;4;7;10})

    ResponderBorrar
  3. Mil gracias!! Yo te lo pregunté... Me has sacado de un apuro!

    ResponderBorrar
  4. Podriamos calcular el n° de semana dentro del mes?

    ResponderBorrar
  5. Si. Y una vez dicho debemos aclarar que entendemos por semana dentro del mes. Si entendemos que la primer semana siempre empieza en el primero del mes, podemos usar

    =ENTERO((DIA(A2)-1)/7)+1

    donde A2 contiene la fecha a evaluar.

    Si queremos ser más respetuosos del calendario, si consideramos que la semana empieza el lunes usamos esta fórmula:

    =REDONDEAR.MAS(((DIA(A2)+DIASEM(FECHA(AÑO(A2),MES(A2),-1))))/7,0)

    si la semana empieza el domingo:

    =REDONDEAR.MAS(((DIA(A2)+DIASEM(FECHA(AÑO(A2),MES(A2),0))))/7,0)

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.