En Excel existen 2 funciones para devolver el número de semana a partir de una fecha.
- La función NO.SEMANA: Esta función existe desde el origen de Excel, pero utiliza el método americano, lo que puede introducir errores de interpretación.
- La función NO.SEMANA.ISO: Esta función existe desde Excel 2013 y devuelve el número de semana determinado en Europa.
Reglas diferentes entre Estados Unidos y Europa
En Europa, el cálculo de los números semanales se rige por Norma ISO 8601. Esta norma considera que la primera semana del año debe tener al menos 4 días.
- Es decir, si la primera semana del año comienza en viernes, sábado o domingo, esos días no se cuentan como pertenecientes a la primera semana del año.
- Pero en América del Norte esta regla no existe. El cálculo de los números de la semana comienza el 1 de enero, incluso si el 1 de enero es domingo.
Consecuencia con Excel
Para comprender completamente el impacto de estas 2 fórmulas en el cálculo de los números de semanas, aquí hay 2 tablas con la misma fecha de inicio.
Cálculo con el 1 de enero.
En el siguiente documento tenemos todas las fechas desde el 1 de enero del 2015 al 2025.
- Con la función NO.SEMANA, sea cual sea el primer día del año, la función siempre devuelve el valor 1.
- Con NO.SEMANA.ISO, si el primer día del año es viernes, sábado o domingo, la función considera la fecha 1 de enero pertenece a la semana del año anterior.

Número de semana con el 3 de enero.
En el siguiente documento tenemos ahora todas las fechas del 3 de enero de 2015 a 2025.

Observaciones
- Le El cambio de semana se realiza en domingo. con la función NO.SEMANA
- Para cambiar la semana a lunes, debe agregar valor 2 en el segundo parámetro de la función = NO.SEMANA(fecha;2)
- En 2016 y 2021, la función NO.WEEK.ISO todavía no cuenta el 3 de enero. De hecho, no hay aún no hay días hábiles en esta fecha por estos años
Número de semana en VBA
En VBA, para devolver el número de semana, la forma más sencilla es utilizar las funciones de cálculo de Excel.
Sub Num_Semaine()
'Num semaine Format Europe
Cells(1, 1) = Application.WorksheetFunction.IsoWeekNum(Date)
'Num semaine Format US
Cells(1, 1) = Application.WorksheetFunction.WeekNum(Date)
End Sub
14/11/2023 a las 16:56
Hola,
¿Es posible en Excel sin usar VBA encontrar el número de semana solo todos los lunes?
15/11/2023 a las 08:19
Hola, no entiendo nada la pregunta. ¿Es un número de semana lo que desea o busca el lunes correspondiente a un número de semana específico?