- ベストアンサー
エクセルで今日の日付から次の出荷日を拾う方法
- 現在、EXEL2003を使用しています。エクセルのセル上に、その日の日付と曜日を表示し、別のワークシートに入れてある出荷日の一覧から次回の出荷日を拾ってきて表示したいです。
- 今日の日付を表示させるところまでは、出来たのですが、次の出荷日を表示する方法が分かりません。曜日の所は、CHOOSE関数とWEEKDAY関数を組み合わせるか、VLOOKUPで別なセルからデータを拾って来る方法で表示しました。
- 製品出荷日のデータは、本来別のワークシートに入れてありますが、同じ画像に入れてあります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
MATCH関数を使った抽出では、出荷日のデータが順序良く(日付の新しい順や古い順に)並んでいなければ、正しい値を抽出出来ません。(当日が出荷日の場合は別) ですから、出荷日が順不同に並んでいる場合には、別のアプローチで、次回の出荷日を求める必要があります。 添付画像では、何処に何のデータが存在しているのか、見分ける事が困難でしたので、取り敢えず仮に、出荷日の年月日はSheet2のA列に入力されていて、Sheet2のA列には出荷日以外の数値は存在して居ない(文字列データは存在していても構いません)ものとします。 その場合には、まず、次の出荷日を表示させるセルの書式設定を日付とした上で、次の数式を入力すると良いと思います。 =IF(COUNTIF(Sheet2!$A:$A,">="&TODAY())=0,"次回出荷日未定",LARGE(Sheet2!$A:$A,COUNTIF(Sheet2!$A:$A,">="&TODAY()))) 尚、この数式は、今日が出荷日である場合には、今日の日付が表示されます。 もし、今日が出荷日である場合を含めないのでしたら、数式中の ">=" の部分を ">" に変更して、 =IF(COUNTIF(Sheet2!$A:$A,">"&TODAY())=0,"次回出荷日未定",LARGE(Sheet2!$A:$A,COUNTIF(Sheet2!$A:$A,">"&TODAY()))) として下さい。 尚、この数式は、出荷日入力されているSheet2のA列のセルを、削除、切り取り、挿入、等の編集を行っても正常に動作します。(但し、Sheet2のA列そのものを削除した場合には、エラーとなります)
その他の回答 (2)
- don9don9
- ベストアンサー率47% (299/624)
仮にB1セルに今日の日付が入っているとして 今日の日付より後(今日の日付を含まない)の直近の日付を 製品出荷日の一覧から引きたいのであれば =INDEX(A10:A24,MATCH(B1,A10:A24)+1) 今日の日付以降(今日の日付も含める)の直近の日付であれば =IF(B1>INDEX(A10:A24,MATCH(B1,A10:A24)),INDEX(A10:A24,MATCH(B1,A10:A24)+1),INDEX(A10:A24,MATCH(B1,A10:A24))) のような式で可能ではないかと思います。
お礼
見ず知らずの私に、色々アドバイスありがとうございます。 EXELの関数を使用した式は、さまざまなアプローチが出来るので、色々勉強していきたいと思います。 ありがとうございました。
- Yupa3
- ベストアンサー率37% (190/513)
マクロなら出荷日一覧を上から一つづつ見て、現在日付以後の日付を拾い出せばいい気がするんですが。 関数だとIF関数のネストになるんですかね?(添付されている図のように有限の個数なら可能です。)
お礼
ありがとうございました。 色々分からないこともありますので、また何かありましたらお願いします。
お礼
お礼が遅くなり済みません。 詳しい解説ありがとうございました。 ちょっと画像が小さすぎて分かりづらくすみませんでした。 助かりました。