Hoppa till huvudinnehåll

Hur räknar man antalet skottår mellan två datum i Excel?

I Excel kan det vara enkelt för de flesta användare att räkna antalet år mellan två givna datum, men kan du bara räkna antalet skottår som också kallas mellanår mellan två datum? Här introducerar jag en formel som kan hjälpa dig att snabbt beräkna antalet skottår mellan ett datumintervall i Excel.

Räkna skottår i ett datumintervall med formeln


pil blå höger bubbla Räkna skottår i ett datumintervall med formeln

För att räkna skottår mellan två datum behöver du bara göra så här:

Välj en tom cell som du kommer att placera det räknade resultatet på, till exempel C2, och ange denna formel
=DATE(YEAR(B2),1,1)-DATE(YEAR(A2),1,1)-((YEAR(B2)-YEAR(A2))*365)+AND(MONTH(DATE(YEAR(A2),2,29))=2,MONTH(DATE(YEAR(B2),2,29))=2)*1
tryck sedan på ange för att få resultatet. Se skärmdump:
dok. räknar skottår 1

Tips: I formeln är A2 startdatum och B2 är slutdatum, du kan ändra dem efter behov.

Bästa kontorsproduktivitetsverktyg

🤖 Kutools AI Aide: Revolutionera dataanalys baserat på: Intelligent utförande   |  Generera kod  |  Skapa anpassade formler  |  Analysera data och generera diagram  |  Anropa Kutools funktioner.
Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50+ Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

Beskrivning


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
A more useful function would be to calculate the number of times Feb 29 occurs between 2 dates.
This comment was minimized by the moderator on the site
Tentei a fórmula acima, mas ainda gerava erro no numero de anos bissextos, então fiz uma função em VBA que faz a verificação ano a ano no intervalo.
Após incluir esta macro abaixo, para utilizar use a função =ContBissexto(A1;B1), o resultado é a quantidade de anos bissextos no período: Espero ter ajudado:

Function ContBissexto(Ini As Date, Fim As Date) As Integer
On Error Resume Next

Dim AnoIni As Integer
Dim AnoFim As Integer
Dim contB As Integer
contB = 0
'DEFINE O ANO DE INICIO DA CONTAGEM DO PERÍODO BISEXTO
If Ini <= DateSerial(Year(Ini), 3, 1) - 1 Then
AnoIni = Year(Ini)
Else
AnoIni = Year(Ini) + 1
End If
'DEFINE O ANO DE FIM DA CONTAGEM DO PERÍODO BISEXTO
If Fim > DateSerial(Year(Fim), 2, 28) Then
AnoFim = Year(Fim)
Else
AnoIni = Year(Fim) - 1
End If

For i = AnoIni To AnoFim
If Day(DateSerial(i, 3, 1) - 1) = 29 Then contB = contB + 1
Next

ContBissexto = contB

End Function
This comment was minimized by the moderator on the site
A contagem gerava erro no numero de anos bissextos, então fiz uma função em VBA que faz a verificação ano a ano no intervalo.
Após incluir esta macro abaixo, para utilizar use a função =ContBissexto(A1;B1), o resultado é a quantidade de anos bissextos no período:


Function ContBissexto(Ini As Date, Fim As Date) As Integer
On Error Resume Next

Dim AnoIni As Integer
Dim AnoFim As Integer
Dim contB As Integer
contB = 0
'DEFINE O ANO DE INICIO DA CONTAGEM DO PERÍODO BISSEXTO
If Ini <= DateSerial(Year(Ini), 3, 1) - 1 Then
AnoIni = Year(Ini)
Else
AnoIni = Year(Ini) + 1
End If
'DEFINE O ANO DE FIM DA CONTAGEM DO PERÍODO BISSEXTO
If Fim > DateSerial(Year(Fim), 2, 28) Then
AnoFim = Year(Fim)
Else
AnoIni = Year(Fim) - 1
End If

For i = AnoIni To AnoFim
If Day(DateSerial(i, 3, 1) - 1) = 29 Then contB = contB + 1
Next

ContBissexto = contB

End Function
This comment was minimized by the moderator on the site
Oi amigo,

Excelente fórmula!

Trabalhei com ela e percebi que há uma divergência quando o primeiro e/ou o segundo intervalo são anos bissextos. Tomei a liberdade de corrigir (em português):


=DATA(ANO(B2);1;1)-DATA(ANO(A2);1;1)-((ANO(B2)-ANO(A2))*365)+E(ANO(A2)=ANO(B2);MÊS(DATA(ANO(A2);2;29))=2;A2<=DATA(ANO(A2);2;29);B2>=DATA(ANO(B2);2;29))+E(ANO(A2)
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations