Función WEEKNUM de Excel: converte o número da semana en data e viceversa

  • Comparte Isto
Michael Brown

Aínda que Microsoft Excel ofrece unha variedade de funcións para traballar en días laborables, meses e anos, só hai unha dispoñible durante semanas: a función WEEKNUM. Entón, se estás a buscar unha forma de obter un número de semana a partir dunha data, WEEKNUM é a función que queres.

Neste breve tutorial, falaremos brevemente da sintaxe e dos argumentos de Excel WEEKNUM e a continuación, discuta algúns exemplos de fórmulas que demostran como pode usar a función NÚMERO SEMANA para calcular os números de semana nas súas follas de cálculo de Excel. usado en Excel para devolver o número da semana dunha data específica do ano (un número entre 1 e 54). Ten dous argumentos, o primeiro é obrigatorio e o segundo é opcional:

WEEKNUM(serial_number, [return_type])
  • Serial_number - calquera data dentro da semana cuxo número está a probar atopar. Esta pode ser unha referencia a unha cela que contén a data, unha data introducida mediante a función DATE ou devolta por algunha outra fórmula.
  • Tipo_devolución (opcional): un número que determina en que día que comeza a semana. Se se omite, utilízase o tipo predeterminado 1 (a semana que comeza o domingo).

Aquí está unha lista completa dos return_type valores admitidos nas fórmulas WEEKNUM.

Return_type A semana comeza o
1 ou 17 ou omitido Domingo
2 ou11 Luns
12 Martes
13 Mércores
14 Xoves
15 Venres
16 Sábado
21 Luns (usado no Sistema 2, consulta os detalles a continuación).

Na función WEEKNUM utilízanse dous sistemas de numeración de semanas diferentes:

  • Sistema 1. Considérase a semana que contén o 1 de xaneiro. a 1a semana do ano e está numerada como a semana 1. Neste sistema, a semana comeza tradicionalmente o domingo.
  • Sistema 2. Este é o sistema de datas semanais ISO que forma parte do Norma ISO 8601 de data e hora. Neste sistema, a semana comeza o luns e a semana que contén o primeiro xoves do ano considérase semana 1. Coñécese comunmente como o sistema europeo de numeración da semana e úsase principalmente no goberno e as empresas para exercicios fiscais e cronometraxe.

Todos os tipos de devolución enumerados anteriormente aplícanse ao Sistema 1, excepto ao tipo de devolución 21 que se usa no Sistema 2.

Nota. En Excel 2007 e versións anteriores, só están dispoñibles as opcións 1 e 2. Os tipos de devolución do 11 ao 21 só admiten Excel 2010 e Excel 2013.

Fórmulas de Excel WEEKNUM para converter a data en número de semana (de 1 a 54)

A seguinte captura de pantalla mostra como pode obter números de semana a partir de datas coa fórmula =WEEKNUM(A2) máis sinxela:

No anteriorfórmula, omítese o argumento return_type , o que significa que se usa o tipo predeterminado 1: a semana que comeza o domingo.

Se prefire comezar con outro día da semana, digamos luns, entón use 2 no segundo argumento:

=WEEKNUM(A2, 2)

En lugar de referirse a unha cela, pode especificar a data directamente na fórmula usando a función DATE(ano, mes, día), por exemplo:

=WEEKNUM(DATE(2015,4,15), 2)

A fórmula anterior devolve 16, que é o número da semana que contén o 15 de abril de 2015, cunha semana que comeza o luns.

En escenarios da vida real , a función WEEKNUM de Excel raramente se usa por si mesma. A maioría das veces usaríase en combinación con outras funcións para realizar varios cálculos baseados no número da semana, como se demostra en outros exemplos.

Como converter o número de semana en data en Excel

Como ti acabo de ver, non é gran cousa converter unha data nun número de semana usando a función NÚMERO SEMANA de Excel. Pero e se buscas o contrario, é dicir, converter un número de semana nunha data? Por desgraza, non hai ningunha función de Excel que poida facelo de inmediato. Polo tanto, teremos que construír as nosas propias fórmulas.

Supoño que tes un ano na cela A2 e un número de semana en B2, e agora queres calcular as datas de inicio e fin desta semana.

Nota. Este exemplo de fórmula baséase nos números de semana ISO, cunha semana que comeza o luns.

A fórmula para devolver o Iniciodata da semana é a seguinte:

=DATE(A2, 1, -2) - WEEKDAY(DATE(A2, 1, 3)) + B2 * 7

Onde A2 é o ano e B2 é o número da semana.

Ten en conta que a fórmula devolve a data como número de serie e para que se mostre como data, cómpre formatar a cela en consecuencia. Podes atopar as instrucións detalladas en Cambiar o formato de data en Excel. E aquí está o resultado devolto pola fórmula:

Por suposto, a fórmula para converter un número dunha semana nunha data non é trivial e pode levar un tempo conseguir a súa cabeza arredor da lóxica. De todos os xeitos, farei todo o posible para ofrecer unha explicación significativa para aqueles que teñan curiosidade por chegar ao fondo.

Como ves, a nosa fórmula consta de 2 partes:

  • DATE(A2, 1, -2) - WEEKDAY(DATE(A2, 1, 3)) - calcula a data do último luns do ano anterior.
  • B2 * 7 - suma o número de semanas multiplicado por 7 (o número de días dunha semana) para obter o luns (data de inicio) da semana en pregunta.

No sistema de numeración de semanas ISO, a semana 1 é a semana que contén o primeiro xoves do ano. En consecuencia, o primeiro luns é sempre entre o 29 de decembro e o 4 de xaneiro. Polo tanto, para atopar esa data, temos que buscar o luns inmediatamente anterior ao 5 de xaneiro.

En Microsoft Excel, pode extraer un día da semana de unha data mediante a función WEEKDAY. E podes usar a seguinte fórmula xenérica para obter o luns inmediatamente antes dunha data determinada:

= data - DÍA DA SEMANA( data - 2)

Se o nosoO obxectivo final era atopar o luns inmediatamente anterior ao 5 de xaneiro do ano en A2, poderiamos usar as seguintes funcións DATE:

=DATE(A2,1,5) - WEEKDAY(DATE(A2,1,3))

Pero o que realmente necesitamos non é o primeiro luns de este ano, senón o último luns do ano anterior. Polo tanto, tes que restar 7 días do 5 de xaneiro e, polo tanto, obtén -2 na primeira función DATE:

=DATE(A2,1,-2) - WEEKDAY(DATE(A2,1,3))

En comparación coa fórmula complicada que acabas de aprender, calcula o A data de finalización da semana é fácil :) Para obter o domingo da semana en cuestión, só tes que engadir 6 días á Data de inicio , é dicir, =D2+6

Como alternativa, pode engadir 6 directamente na fórmula:

=DATE(A2, 1, -2) - WEEKDAY(DATE(A2, 1, 3)) + B2 * 7 + 6

Para asegurarse de que as fórmulas sempre ofrecen as datas correctas, consulte o seguinte captura de pantalla. As fórmulas da data de inicio e da data de fin comentadas anteriormente cópianse na columna D e E, respectivamente:

Outras formas de converter o número da semana en data en Excel

Se a fórmula anterior baseada no sistema de datas semanais ISO non cumpre os teus requisitos, proba unha das seguintes solucións.

Fórmula 1. Unha semana que contén o 1 de xaneiro é a semana 1, a semana de luns a domingo

Como lembras, a fórmula anterior funciona baseándose no sistema de datas ISO, onde o primeiro xoves do ano se considera a semana 1. Se traballas baseándose nun sistema de datas no que a semana que contén o 1 de xaneiro é a semana 1, use o seguintefórmulas:

Data de inicio:

=DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),2) + (B2-1)*7 + 1

Data de finalización:

=DATE(A2,1,1)- WEEKDAY(DATE(A2,1,1),2) + B2*7

Fórmula 2. Unha semana que contén Xan-1 é a semana 1, Sun-Sat week

Estas fórmulas son similares ás anteriores coa única diferenza de que están escritas para a semana de domingo a sábado.

Data de inicio:

=DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),1) + (B2-1)*7 + 1

Data de finalización:

=DATE(A2,1,1)- WEEKDAY(DATE(A2,1,1),1) + B2*7

Fórmula 3. Sempre comeza a contar o 1 de xaneiro, semana de luns a domingo

Mentres que as fórmulas anteriores volven o luns (ou o domingo) da semana 1, independentemente de se cae dentro deste ano ou do ano anterior, esta fórmula de data de inicio sempre devolve 1 de xaneiro como data de inicio da semana 1 independentemente do día da semana. Por analoxía, a fórmula da data de finalización sempre devolve 31 de decembro como a data de finalización da última semana do ano, independentemente do día da semana. En todos os demais aspectos, estas fórmulas funcionan de forma similar á Fórmula 1 anterior.

Data de inicio:

=MAX(DATE(A2,1,1), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),2) + (B2-1)*7 + 1)

Data de finalización:

=MIN(DATE(A2+1,1,0), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),2) + B2*7)

Fórmula 4. Comeza sempre a contar o 1 de xaneiro, semana do domingo ao sábado

Para calcular as datas de inicio e finalización para unha semana de domingo a sábado, só fai falta un pequeno axuste nas fórmulas anteriores :)

Data de inicio:

=MAX(DATE(A2,1,1), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),1) + (B2-1)*7 + 1)

Data de finalización:

=MIN(DATE(A2+1,1,0), DATE(A2,1,1) - WEEKDAY(DATE(A2,1,1),1) + B2*7)

Como obter un mes a partir do número da semana

Para obter un mes correspondente á semana número, atoparás o primeiro día dunha semana determinada como se explica nesteexemplo, e despois envolve esa fórmula na función MES de Excel así:

=MONTH(DATE(A2, 1, -2) - WEEKDAY(DATE(A2, 1, 3)) + B2 * 7)

Nota. Lembra que a fórmula anterior funciona baseándose no sistema de datas semanais ISO , onde a semana comeza o luns e a semana que contén o primeiro xoves do ano considérase semana 1. Por exemplo, no ano 2016, o primeiro xoves é o 7 de xaneiro, e por iso a semana 1 comeza o 4-xan-2016.

Como obter un número de semana nun mes (do 1 ao 6)

Se a súa lóxica empresarial require converter unha data específica no número da semana dentro do mes correspondente, pode usar a combinación de WEEKNUM, Funcións DATA e MES:

Asumindo que a cela A2 contén a data orixinal, use a seguinte fórmula para unha semana que comeza o Luns (observe o 21 no argumento tipo_devolución de WEEKNUM):

=WEEKNUM($A2,21)-WEEKNUM(DATE(YEAR($A2), MONTH($A2),1),21)+1

Durante unha semana que comeza o domingo , omita o argumento return_type:

=WEEKNUM($A2)-WEEKNUM(DATE(YEAR($A2), MONTH($A2),1))+1

Como suma valores e atopa a media polo número de semana

Agora que sabes como converter unha data nun número de semana en Excel, vexamos como podes usar os números de semana noutros cálculos.

Supoñamos que , tes algunhas cifras de vendas mensuais e queres saber o total de cada semana.

Para comezar, imos descubrir un número de semana correspondente a cada venda. Se as súas datas están na columna A e as vendas na columna B, copie a fórmula =WEEKNUM(A2) na columna C comezando na celaC2.

E logo, fai unha lista de números de semana nalgunha outra columna (por exemplo, na columna E) e calcula as vendas de cada semana usando a seguinte fórmula SUMIF:

=SUMIF($C$2:$C$15, $E2, $B$2:$B$15)

Onde E2 é o número da semana.

Neste exemplo, estamos a traballar cunha lista de vendas de marzo, polo que temos os números da semana do 10 ao 14, como demostrado na seguinte captura de pantalla:

De forma similar, pode calcular a media de vendas dunha semana determinada:

=AVERAGEIF($C$2:$C$15, $E2, $B$2:$B$15)

Se a columna auxiliar coa fórmula WEEKNUM non encaixa ben na disposición dos datos, lamento dicirche que non hai unha forma sinxela de desfacerse dela porque Excel WEEKNUM é unha desas funcións. que non acepta argumentos de rango. Polo tanto, non se pode usar en SUMPRODUCT ou en calquera outra fórmula matricial como a función MES nun escenario similar.

Como resaltar as celas en función do número da semana

Digamos que tes unha longa lista de datas nalgunha columna e quere destacar só as que se refiren a unha semana determinada. Todo o que necesitas é unha regra de formato condicional cunha fórmula WEEKNUM semellante a esta:

=WEEKNUM($A2)=10

Como se demostra na captura de pantalla a continuación, a regra destaca as vendas realizadas na semana 10, que é o primeira semana de marzo de 2015. Dado que a regra se aplica a A2:B15, destaca os valores en ambas as columnas. Podes obter máis información sobre a creación de regras de formato condicional nestetitorial: Formato condicional de Excel baseado noutro valor de cela.

Así podes calcular os números de semana en Excel, converter o número de semana en data e extraer o número de semana a partir da data. Con sorte, as fórmulas WEEKNUM que aprendeu hoxe sexan útiles nas súas follas de traballo. No seguinte titorial, falaremos de calcular a idade e os anos en Excel. Agradézoche a lectura e espero verte a próxima semana!

Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.