- 締切済み
Excel n時間後の日時
A1に 2011/6/25 7:35 B1に 65:00 C1に 65時間後の日時 (但し、土日を除く)を表示したい
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No6です。E1セルに入力する式は次の式に変更してください。 =IF(COLUMN(A1)=1,IF(OR(WEEKDAY($A1+COLUMN(A1)-1,2)>=6,COUNTIF(Sheet2!$A:$A,DATE(YEAR($A1),MONTH($A1),DAY($A1)+COLUMN(A1)-1))>0),"",IF(TIME(HOUR($A1),MINUTE($A1),0)+$B1<="24:00"*1,TIME(HOUR($A1),MINUTE($A1),0)+$B1,"24:00"-TIME(HOUR($A1),MINUTE($A1),0))),IF(COLUMN(A1)>1,IF(SUM($D1:D1)>=$B1,"OK",IF(OR(WEEKDAY($A1+COLUMN(A1)-1,2)>=6,COUNTIF(Sheet2!$A:$A,DATE(YEAR($A1),MONTH($A1),DAY($A1)+COLUMN(A1)-1))>0),"",IF(SUM($D1:D1)=$B1,"OK",MIN($B1-SUM($D1:D1),"24:00"))))))
- KURUMITO
- ベストアンサー率42% (1835/4283)
かなり面倒な計算になりそうなので作業列を作って対応します。 初めに祝祭日などについてはシート2のA列に入力されているとします。 そこでシート1での作業列ですがD1セルは空白のセルとしてE1セルには次の式を入力して右横方向にオートフィルドラッグします。 =IF(COLUMN(A1)=1,IF(OR(WEEKDAY($A1+COLUMN(A1)-1,2)>=6,COUNTIF(Sheet2!$A:$A,DATE(YEAR($A1),MONTH($A1),DAY($A1)+COLUMN(A1)-1))>0),"","24:00"-TIME(HOUR($A1),MINUTE($A1),0)),IF(COLUMN(A1)>1,IF(SUM($D1:D1)=$B1,"OK",IF(OR(WEEKDAY($A1+COLUMN(A1)-1,2)>=6,COUNTIF(Sheet2!$A:$A,DATE(YEAR($A1),MONTH($A1),DAY($A1)+COLUMN(A1)-1))>0),"",IF(SUM($D1:D1)=$B1,"OK",MIN($B1-SUM($D1:D1),"24:00")))))) その後に答えとなるC1セルには次の式を入力します。 =DATE(YEAR(A1),MONTH(A1),DAY(A1)+MATCH("OK",E1:AX1,0)-2)+INDEX(E1:AX1,MATCH("OK",E1:AX1,0)-1) C1セルの表示形式は日付の中から日付と時間が表示される形式を選択します。
- esupuresso
- ベストアンサー率44% (257/579)
- MackyNo1
- ベストアンサー率53% (1521/2850)
土日を除く65時間後の意味が良くわかりません。 例えば2011/6/22 7:35なら、そのまま65時間後は6/25(日曜日)になりますが、このような場合はどのような値を求めたいのでしょうか? 同様に、6/24の場合は6/27(月曜日)の0:35になります(これは問題ないですよね)。 また、6/25の場合、27日(月曜日)の0時を起点にするとのことですが、6/29(水曜日)の17:00になります。 このように全く時間的に整合性がないように思うのですが、土日を除く65時間後とは、いったいどのような日時を求めたいのでしょうか。 ご希望の操作を、目的を含めて、具体的にいくつかの例をあげて説明されたほうが、皆さんから的確な回答が寄せられるように思います。
[No.2補足]へのコメント、 土、日、祝日を考慮して開始日、終了日間の日数を返す関数として =NETWORKDAYS() があるので、それが使えないかと[ゴールシーク]機能を試行錯誤してみましたが、無理みたいです。 マクロを使えば難なく出来そうですが、残念ながら私はマクロ音痴なので、撤退せざるを得ません。
「土日を除く」ということは、貴方の期待する結果は 2011/6/29 17:00 ですか? つまり、2011/6/25 は土曜日なので、起点の 2011/6/25 7:35 は 2011/6/27 0:00 と同等なのかの確認を求めています。 ついでながら、祝祭日は除かないのですか?
- fifty3_b
- ベストアンサー率0% (0/0)
=IF(OR(WEEKDAY(A1+B1)=1,WEEKDAY(A1+B1)=7),"",A1+B1) 結果が表示されたら、表示形式を設定。
補足
>つまり、2011/6/25 は土曜日なので、起点の 2011/6/25 7:35 は >2011/6/27 0:00 と同等なのかの確認 説明不足で申し訳ありません。 2011/6/27の0:00から65時間後の日時です。 >祝祭日は除かないのですか? 祝祭日のことは考えていませんでした。 祝祭日も除く方法を教えてください。