
ExcelでA1に生年月日が入っていて
「閏年生まれの場合+1、それ以外は+2」
としたいのですがどの様な関数との組み合わせがよろしいのでしょうか?
B1セルに
=IF(AND(16163<=A1,A1<=16527),A1+1,IF(AND(17624<=A1,A1<=17988),A1+1,IF(AND(19085<=A1,A1<=19449),A1+1,IF(AND(20546<=A1,A1<=20910),A1+1,A1+2))))
ですとIFの限界が来たときにエラーになってしまいます。
過去質問にも似たようなものがありましたが、この場合でもMATCHやVLOOKUPを使うと上手くいくのでしょうか?
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
うるう年の条件は、
1.西暦年が4で割り切れる年は閏年
2.ただし、西暦年が100で割り切れる年は平年
3.ただし、西暦年が400で割り切れる年は閏年
ですので、例外条件になる3.2.1.の順にIF関数で判定すれば良いかと。
=IF(条件3, うるう年, IF(条件2, 平年, IF(条件1, うるう年, 平年)))
割り切れる/割り切れないの判定には、一般的には剰余を求める関数MODを使用し、割り算の余りがゼロか否かで判定します。
No.6
- 回答日時:
理屈は同じく「2月29日って指定して3月1日になったら非閏年」って
やつですが、
=month(date(year(A1),2,29))-1
day関数ではなくmonth関数を使うと、if関数や比較演算子が必要あ
りません。
No.4
- 回答日時:
1999/1/1_2 <-- =1+ABS(TEXT(DATE(YEAR(A1),2,29),"d")="1")
2000/1/1_1
2001/1/1_2
2002/1/1_2
2003/1/1_2
2004/1/1_1
エクセルは一度も操作したことがない門外漢ですが・・・。
その年の2月29日が3月1日でなければ閏年かと思います。
ですから、1に1を足すか0かで・・・。
No.3
- 回答日時:
うるう年を計算で求めなくてもエクセルは日付をサポートしていますので、3月1日の前日が29であればうるう年、そうでなければ平年とわかります。
したがって、閏年生まれの場合+1、それ以外は+2ということは
うるう年なら1、平年なら0を2から引いたものをA1に足せばいいわけですよね?
=A1+2-(DAY(DATE(YEAR(A1),3,0))=29)
No.2
- 回答日時:
EXCELのサポートサイトに以下の記述がありました。
http://support.microsoft.com/kb/214019/ja
それを基に作成すると以下のようになるのではないでしょうか。
=IF(OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0)),A1+1,A1+2)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
【関数】【マクロ】売上X円以上...
-
エクセルシートの見出しの文字...
-
【マクロ 画像あり】Exact関数...
-
空白処理を空白に
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
if関数の複数条件について
-
エクセルでフィルターした値を...
-
空白のはずがSUBTOTAL関数でカ...
-
【マクロ】エラー【#DIV/0!】が...
-
【マクロ】数式を入力したい。...
-
【関数】3つのセルの中で最新...
-
Excelで4択問題を作成したい
-
エクセルの文字数列関数と競馬...
-
オートフィルターの絞込みをし...
-
表計算ソフトでの様式の呼称
-
【画像あり】【関数】指定した...
-
エクセルに写真が貼れない(フ...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報