メインコンテンツへスキップ

ExcelでXNUMXつの日付の間のうるう年の数を数える方法は?

Excelでは、特定のXNUMXつの日付の間の年数を数えるのはほとんどのユーザーにとって簡単かもしれませんが、XNUMXつの日付の間の閏年とも呼ばれるうるう年の数しか数えられませんか? ここでは、Excelの日付範囲間のうるう年の数をすばやく計算するのに役立つ数式を紹介します。

数式を使用して日付範囲のうるう年を数える


矢印青い右バブル 数式を使用して日付範囲のうるう年を数える

XNUMXつの日付の間のうるう年を数えるには、次のようにする必要があります。

カウント結果を配置する空白のセル(たとえばC2)を選択し、この数式を入力します
=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
それから、 入力します 結果を得るための鍵。 スクリーンショットを参照してください:
ドキュメントカウントうるう年1

先端:式では、A2が開始日、B2が終了日であり、必要に応じて変更できます。

最高のオフィス生産性向上ツール

人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト 工具 (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 工具 (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 工具 (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット 工具 (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...

kteタブ201905


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
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