『1週間ごとの最後の日付を求めたい』(モモちゃん) 月の日付がA列に入力されている場合、その日付から日曜を起点に1週間の最終日の場合は、例えばB列に1を表示し、 そうでない場合はB列に2を表示したい場合は、どういう数式でできますでしょうか? IF関数とINDEX関数をネストしていけばできるような気がしますが、複雑すぎて よくわからなくなってきてしまいました。 おわかりになるかたお願いします。  日付の最後の週以外は日曜日を起点に1週間ですので、必ず土曜日が最後になると思うのですが、 最後の週は、その月により土曜日で終わるとはかぎりません。よろしくお願いします。 ---- > 月の日付がA列に入力されている場合 これはカレンダーのように1日から月末日までが1日ずつ表示されてるということでしょうか? > 最後の週は、その月により土曜日で終わるとはかぎりません。 最後の週はどうなればいいんですか? 月末日に1を表示? 要は土曜日もしくは月末日(つまりA列の最後の日付)が「1」ってことですか? (JPN) ---- ダサい式だけど、以下でも、一応は求められるかな? B1 に =IF(IF(MONTH(A1)=MONTH(A1+(7-WEEKDAY(A1))),A1+(7-WEEKDAY(A1)),DATE(YEAR(A1),MONTH(A1)+1,0))=A1,1,2) 追記)最終週は月末日を 1 にしている。もし、そうじゃなく翌月の最初の土曜日でよければ式はもう少しスッキリする。 (ぶらっと) ---- > 月の日付 月単位でしょ? 4月なら4月だけの日付ですよね? A列がどうなっているのかわかりませんが、1日から月末日までが表示されていて > 土曜日もしくは月末日(つまりA列の最後の日付)が「1」 ということなら、シンプルに考えて(2行目から始まっている場合) B2 =IF(A2="","",IF(OR(A3="",WEEKDAY(A2)=7),1,2)) これで違うのなら、最後の週はどうするのかということの他に A列がどうなっているのか具体的に説明してください。 A列に数式が入っているならその式も提示してください。 それとExcelのバージョンも明記のこと (JPN) ---- 返事がなかなか返ってこないので、憶測・想像・妄想・あてずっぽうの域を出ないことに変わりありませんが ・A列にはランダムに日付を入力する ・その日付からのみ「1」か「2」を判定する ・「1」にするのは土曜日または月末日 ということなら B2 =IF(A2="","",IF(OR(WEEKDAY(A2)=7,DAY(A2+1)=1),1,2)) または B2 =IF(A2="","",IF(OR(WEEKDAY(A2)=7,EOMONTH(A2,0)=A2),1,2)) EOMONTH関数を使う場合、2003以前のバージョンならツール→アドイン→分析ツールにチェック (JPN) ---- そうですねぇ。「1週間ごとの最後の日付を求めたい」に引きずられて、まずその日付を求めるところから入ったけど、 結果的には、そんなことは、全く不要で、A列の日付が土曜日かあるいは月末日かということだけで、よかったわけですなぁ。 (ぶらっと)