• ベストアンサー

エクセルで困っています。

いつもお世話になっております。 今回もエクセルの質問です。 Aの欄には日付が10年分入っています。(空欄はありません。形式は2015/8/21の様な感じのフラッシュです。この中から、3月の第2日曜日から11月の第1日曜日までをB欄に1、そうではない時はー1と記入させたいです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

>説明不足ですみません、こちらでお願いします。 >>「3月の第2日曜日の翌日」は月曜日ですが、「3月の第2日曜日から11月の第1日曜日までの期間」内の日付であるという事で、B列には1を表示させる様にすれば宜しいのでしょうか?  それでしたら次の様な関数をB1セルに入力してから、B1セルをコピーして、B2以下に貼り付けて下さい。 =IF(ISERROR(1/DAY($A1)),"",IF(AND($A1>=DATE(YEAR($A1),3,15-WEEKDAY(YEAR($A1)&"/3",2)),$A1<DATE(YEAR($A1),11,9-WEEKDAY(YEAR($A1)&"/11",2))),1,-1))  因みに、1と表示しなければならない期間が始まる日の第1○曜日、第2○曜日等の何番目かという部分を、例えば第n○曜日に変更する場合には、上記の関数の中の -WEEKDAY(YEAR($A1)&"/3",2) という部分の直前にある15という数値を n×7+1 という計算で得られる数値に変更して下さい。  同様に期間の最終日の場合は -WEEKDAY(YEAR($A1)&"/11",2) という部分の直前にある9という数値を n×7+2 という計算で得られる数値に変更して下さい。  又、日曜日以外の曜日に変更する場合には、上記の関数の中の -WEEKDAY(YEAR($A1)&"/3",2) という部分や -WEEKDAY(YEAR($A1)&"/11",2) という部分の末尾の括弧の直前にある2という指定値を 月曜日の場合には12 火曜日の場合には13 水曜日の場合には14 木曜日の場合には15 金曜日の場合には16 土曜日の場合には1 に変更して下さい。

mao1217
質問者

お礼

kagakusukiさん ご回答ありがとうございます。 完璧です。何度もやり取りさせてしまってすみません。 質問した時にはいつもkagakusukiさんが答えてくれています。 とても助かります。今後ともよろしくお願いします。では

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 2004年や2027年の様に3月1日が月曜日となっている年の、3月7日~3月13日及び10月31日~11月6日の日付を入力した際に、誤った結果が表示される事がないかどうかをチェックしておかれる事を御勧め致します。

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.3

NO2です。 間違って、開始年月日が必要と記載しました。 A列の日付データから西暦を取得出来るので、開始年月日は不用でした。 申し訳ありません。 2行目からデータが開始しているものとしています。 B2式 =IF(AND(A2>=DATE(YEAR(A2),3,13-WEEKDAY(DATE(YEAR(A2),3,0),3)),A2<=DATE(YEAR(A2),11,6-WEEKDAY(DATE(YEAR(A2),11,0),3))),1,-1) 下方へオートフィル 成人式や体育の日を計算する方法が適応出来ますので下記参照下さい。 http://www.wanichan.com/pc/excel/2010/5/page06.html

mao1217
質問者

お礼

dogs_catsさん ご回答ありがとうございます。 99%正解です。残り1%は2004年や2027年の様に3月1日が月曜日となっている年の、3月7日~3月13日及び10月31日~11月6日の日付を入力した際に、誤った結果が表示される事があるようです。ですが他の方の力で何とか解決する事ができました。今回は本当にありがとうございました。とても感謝しています。またちょくちょく質問させていただきますので、その時はよろしくお願いします。では

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

10年分データの開始年月日が不明だと関数を作成出来ません。 A欄の開始セルアドレスと開始年月日を追記下さい。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 質問者様が仰っておられる >3月の第2日曜日から11月の第1日曜日まで とは一体どの様な意味で仰っておられるのかが不明です。  例えば、「3月の第2日曜日の翌日」は月曜日ですが、「3月の第2日曜日から11月の第1日曜日までの期間」内の日付であるという事で、B列には1を表示させる様にすれば宜しいのでしょうか?  それとも、「3月の第2日曜日から11月の第1日曜日までの期間」内の日曜日の場合のみB列には1を表示させる様にすれば宜しいのでしょうか?  それとも、A列に入力されている日付が、「3月の第2日曜日」となっている場合と「11月の第1日曜日」となっている場合にのみB列には1を表示させる様にすれば宜しいのでしょうか?

mao1217
質問者

補足

説明不足ですみません、こちらでお願いします。 >「3月の第2日曜日の翌日」は月曜日ですが、「3月の第2日曜日から11月の第1日曜日までの期間」内の日付であるという事で、B列には1を表示させる様にすれば宜しいのでしょうか?

関連するQ&A