
A1セルのTODAYの日付よりもG4セルの日付の方が大きい(後の日付)ならばG4セルの日付をそのまま持ってきて、
G4セルの数字の方が小さい(前の日付)ならば一行下がってG5セルの日付を持ってきて、という関数を入れています。
同様に、次の日付もTODAYより前であればその次と、偽の場合にさらにIF関数を入れています。
G列の日付を手入力すると値がうまく反映されるのですが、D,E,F列の値を間に/を入れて&でつなぐとうまくいかなくなってしまいます。
どこが問題でしょうか?
入力している関数は以下です。
【B1セル】
=TODAY()
【B4セル】
=IF(B1<J4,J4,IF(B1<J5,J5,IF(B1<J6,J6,IF(B1<J7,J7,IF(B1<J8,J8,IF(B1<J9,J9,IF(B1<J10,J10,IF(B1<J11,J11,IF(B1<J12,J12,IF(B1<J13,J13,IF(B1<J14,J14,J15)))))))))))
【J4セル】
==G4&"/"&H4&"/"&I4(以下同)

No.3ベストアンサー
- 回答日時:
こんにちは
日付の前後(=大小)を比較しようとするなら、シリアル値(=エクセルの日付型の値)で比較するのが便利です。
一方で、ご提示の【J4セル】の式は、文字を連結しただけのものなので、(見た目は日付ですが)単なる文字列になっています。
日付型にしたければ
=DATE(G4,H4,I4)
のような関数式にしておく必要があります。
あるいは、ご提示の式を利用するなら、
=(G4&"/"&H4&"/"&I4)*1
とかでも可能です。
その上で、G列の日付が必ず昇順に並んでいると仮定しても良いのなら、B4セルの関数もIFの何重ものネストをする必要はありません。
=INDEX(J4:J15,MATCH(B1,J4:J15,1)+1)
で算出可能と思います。
必ずしも昇順になっているとは限らないのであれば、
=AGGREGATE(15,6,J4:J15/(B1<J4:J15),1)
としておくことで算出可能と思います。
※ 該当日が見つからない場合は、どちらの式もエラー表示になります。
No.2
- 回答日時:
> D,E,F列の値を間に/を入れて&でつなぐとうまくいかなく…
それが、「日付」ではないからです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelに入力した個々の日付の数...
-
Excelで半年後の日付を計算したい
-
入力後に日付順になるように自...
-
31:30:00が1900/1/1 7:30:0
-
日付だけを変更して印刷(Excel)
-
エクセルでENTERを押すと数式が...
-
Excelで8/26等の日付を全てその...
-
日付の照合でFALSEになります。
-
エクセル 当番表の作り方 エク...
-
エクセル関数で日付かどうかの...
-
EXCELで直近の日付を抽出する関数
-
ワード差込について
-
エクセルのセルにたとえば「756...
-
エクセル グラフ 軸の日付表記...
-
Excelで日付を4ケタで入力し、○...
-
エクセル セルに109と入力する...
-
エクセルのセルにカレンダーを...
-
エクセルで1・2・3月を翌年にし...
-
WORDで翌日や翌々日の日付を表...
-
和暦6桁を西暦に変換したいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelに入力した個々の日付の数...
-
日付だけを変更して印刷(Excel)
-
入力後に日付順になるように自...
-
31:30:00が1900/1/1 7:30:0
-
Excelで半年後の日付を計算したい
-
エクセルでENTERを押すと数式が...
-
Excelで8/26等の日付を全てその...
-
エクセルで数字列の間に『/』を...
-
エクセル 当番表の作り方 エク...
-
エクセル関数で日付かどうかの...
-
ファイルのオープン時に今日の...
-
日付を入力したセルをファイル...
-
【マクロ】A列にある、日付(本...
-
日付の照合でFALSEになります。
-
EXCELで直近の日付を抽出する関数
-
WORDで翌日や翌々日の日付を表...
-
エクセルで日付入力欄を作成し...
-
ワード差込について
-
エクセルで1年後の月末を表示さ...
-
日付入力→指定のセルの色を塗り...
おすすめ情報