A primera vista parece una pregunta sencilla. Si tenemos instalado el Análisis Toolpak, podemos utilizar la función NUM.DE.SEMANA(núm_de_serie;tipo), donde "num_de_serie" es el número de serie de la fecha y "tipo" es una variable que indica si la semana comienza el domingo (tipo = 1) o el lunes(tipo = 2).
Si NUM.DE.SEMANA da resultado #¿NOMBRE?, podemos usar su equivalente en inglés WEEKNUM.
Sencillo, no? Pues bien, no!. Sucede que hay que tener en cuenta varias cuestiones antes de lanzarnos a calcular el número de semana.
El resto de esta entrada está basado en los excelentes artículos de Chip Pearson y Ron de Bruin sobre el tema.
La primer semana comienza el 1 de enero; pero, cuando comienza la segunda, al 8 de enero o el primer lunes después del 1 de enero? Que día marca el comienzo de la semana, el lunes o el domingo?
Veamos las distintas formas de calcular el número de semana. Un archivo con las distintas fórmulas se puede bajar aquí.
Número de semana absoluto.
De acuerdo este concepto, la primer semana empieza siempre el 1 de enero y concluye el 7 de enero, sin tener en cuenta el día de la semana. De esta manera tendremos 53 semanas al año. La semana 53 tendrá un día o dos, si se trata de un año bisiesto.
Para calcular el número de semana absoluto usamos la fórmula
=TRUNCAR(((A1-FECHA(AÑO(A1),1,0))+6)/7)
Si en la celda A1 tenemos la fecha de hoy (28/06/2006), esta fórmula da el resultado 26.
Número de semana de Excel.
Excel ofrece la función WEEKNUM (o NUM.DE.SEMANA). Para usar esta fórmula debemos instalar previamente el Analysis Toolpak.
Esta función calcula el número de semana contando desde el domingo o el lunes. Por lo tanto, la primer semana puede tener entre 1 y 7 días.
La sintaxis de esta fórmula es
NUM.DE.SEMANA(núm_de_serie;tipo)
Núm_de_serie es una fecha dentro de la semana. Las fechas deben introducirse mediante la función FECHA o como resultados de otras fórmulas o funciones.
Tipo es un número que determina en qué día comienza la semana. El valor puede ser 1 (domingo) o 2 (lunes).
La función =WEEKNUM(A1,2), donde A1 contiene la fecha 28/06/2006 da el resulta 27. En cambio la función =WEEKNUM(A1,1) da 26.
Número de semana ISO (International Organization for Standardisation )
De acuerdo a la norma ISO, la semana empieza siempre un lunes y termina un domingo. La primer semana del año es la que contiene el primer jueves. Es decir, la primer semana tendrá siempre 4 días por lo menos.
La fórmula para calcular el número de semana de acuerdo al estándar ISO es
=ENTERO((A1-FECHA(AÑO(A1-DIASEM(A1-1)+4),1,3)+DIASEM(FECHA(AÑO(A1-DIASEM(A1-1)+4),1,3))+5)/7)
Si la celda A1 contiene la fecha 28/06/2006, el resultado será 26.
Finalmente, si queremos utilizar fórmulas en lugar de la función WEEKNUM,
Si la semana empieza en domingo:
=1+ENTERO((A1-(FECHA(AÑO(A1),1,2)-DIASEM(FECHA(AÑO(A1),1,1))))/7)
Si la semana empieza en lunes:
=1+ENTERO((A1-(FECHA(AÑO(A1),1,2)-DIASEM(FECHA(AÑO(A1),1,0))))/7)
Categorías: Funciones&Formulas
Technorati Tags: WEEKNUM
UN PEQUEÑO TRUCO A ESTE PROBLEMA DEL CALCULO DEL NUMERO DE LA SEMANA:
ResponderBorrar="SEMANA "&REDONDEAR.MAS((HOY()-38718)/7;0)
ES BASTANTE EFICIENTE, NO TIENE EL PROBLEMA DE AJUSTAR A 53 O 54 SEMANAS.
EL TRUCO ESTA EN QUE 38718 ES EL NUMERO DE DIAS DESDE 01/01/1900, POR LO CUAL SOLO UTILIZAS LOS DIAS DEL PRESENTE AÑO; OBVIAMENTE EL CARTEL DE "SEMANA" ES OPTATIVO
Hola
ResponderBorrarGracias por la info, no consegía que me funcionase la fórmula:
=1+ENTERO((A1-(FECHA(AÑO(A1),1,2)-DIASEM(FECHA(AÑO(A1),1,0))))/7)
A parte de que las "comas" son "puntos y coma", delante de DIASEM tiene que ser un más.
Gracias por el trabajo.
Hola
ResponderBorrarhe revisado las fórmulas y funcionan bien tal como aparecen en el blog. Fíjate que si aplicas WEEKNUM (o NUM.DE.SEMANA) a la fecha de hoy, recibes como resultado 13, que es la semana corriente. Si cambiamos la fórmula, el resultado será 12. Mucho me temo que tu fórmula está equivocada.
En cuanto a los separadores, éstos dependen de las definiciones del sistema.
Buen dia:
ResponderBorrarGracias por escribir post tan interesantes para todos nosotros.
Em mi empresa por desiciones de producion las semanas comienzan los dias Viernes ( como hago yo por medio de formulas sacarle el numero de semana a una fecha en particualar) .
Agradecere mucho su ayuda.
Saludos Cordiales
Edgard ramos
Edgar.drg@gmail.com
El primer día de la primera semana del año sería el primer viernes de enero?
ResponderBorrary para saber el numero de semana del mes que formula puedo utilizar.
ResponderBorrarGracias !!!!
javierhn1@gmail.com
Marvin,
ResponderBorrarno la chequé pero podés probar con
=ENTERO((DIA(B2)-1)/7)+1
donde en B2 está la fecha en cuestión
La verdad, la info de este blog, me ayudó muchísimo en un reporte de Consumos y tendencias... Le agradezco infinitamente.
ResponderBorrarUn apunte. Si se utiliza la fórmula para calcular la semana ISO de una fecha y queremos hacer agrupados por semana ISO y año no podremos utilizar la función año de Excel, sino que tenemos que calcular el "año ISO" de esa semana. Un ejemplo, según la fórmula el 1-1-2010, viernes, corresponde a la semana 53. En este caso el año no sería 2010 para juntar a la semana, sino el 2009.
ResponderBorrarAñoISO = AÑO(A2 -DIASEM(A2 - 1) + 4)
Y si quiero que la semana empiece en miércoles?
ResponderBorrarDe acuerdo al estandar ISO 8601, el lunes es el primer día de la semana. En algunos países y culturas el domingo. Ese es el motivo que las funciones ofrecen la posibilidad establecer el primer día de la semana entre domingo o lunes.
ResponderBorrarEstimados, quiero generar un filtro para tabla dinamica, que se clasifique asi: 1 semana de enero, 2 semana de enero, 3 tercera semana de enero.., para ello tengo todos los días como base para darle ese formato, algún gurú sabra si es posible hacer ese formato?? gracias
ResponderBorrarLa funcionalidad Agrupar de las tablas dinámicas permite hacerlo por años, meses, trimestres, días pero no por semana. En esta nota muestro una forma aproximada de hacerlo. Otra técnica sería agregando un campo auxiliar a la base de datos. Tal vez publique una nota sobre el tema próximamente.
ResponderBorrarComo puedo hacer para que a partir de una fecha excel devuelva la semana en la cual esta esa fecha, pero no en formato de numero... x ejemplo... 22/11/2015 = semana que termina en 28/11/2015...
ResponderBorrarComo puedo hacer para que a partir de una fecha excel devuelva la semana en la cual esta esa fecha, pero no en formato de numero... x ejemplo... 22/11/2015 = semana que termina en 28/11/2015...
ResponderBorrarSuponiendo que la semana termina el sábado, como se desprende de tu ejemplo, tendrías que usar esta fórmula:
ResponderBorrar="semana que termina en "&TEXTO(A1+(7-DIASEM(A1,1)),"dd/mm/yyyy")
De acuerdo a las definiciones regionales del Windows, puede la expresión "dd/mm/yyyy" puede deber escribirse "dd/mm/aaaa"
Como puedo hacer si por ejemplo tengo una tabla con estos datos
ResponderBorrarSemana||Inicio_Semana || Fin_semana
45 || 04/11/2016 || 10/11/2016
46 || 11/11/2016 || 17/11/2016
Bien ahora con esos datos yo escribo en otra hoja el 13/11/2016 por ejemplo y al lado debe salirme el numero de semana (Ojo las fechas de inicio y fin de semana son manuales no los inicio y fin habituales de un calendario)
Excel tiene la función NUM.DE.SEMANA justamente para esos cálculos.
ResponderBorrarTal como escribo en el post.
ResponderBorrarNecesito ayuda: en una celda de Excel quiero que cuando escriba la fecha de nacimiento parezca de la siguiente manera ejemplo :22-X-2016.
ResponderBorrarUsando Formato de celda-Numerico-Personalizado y definiendo el formato.
ResponderBorrar