Excel(表計算ソフトのエクセル)に関して質問です。



毎週火曜日の日付がyyyy/MM/ddの形式で集計されています。
これを次の週の金曜の日付に修正したいのですが、どのように
したらいいでしょうか?

ポイントは以下の通りです
・集計された日付はアメリカ時間(東部標準時)である
・もし翌週金曜がアメリカの祝日にあたる場合、
それ以前の直近の平日の日付に自動的に修正する

解決策はVBAでもいいです。
手間のかからない方法をご存知でしたら是非教えてください。
宜しくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/07/09 13:58:23
  • 終了:--

回答(2件)

id:ku__ra__ge No.1

ku__ra__ge回答回数118ベストアンサー獲得回数402005/07/09 14:45:58

ポイント25pt

DateAdd関数を使えば可能です。

たとえば変更したい箇所を選択して

for each oRange in Selection

oRange.value = DateAdd(”s”, 10, oRange.text)

next

とやれば、選択範囲のセルの日付が10日ずつ進みます。

id:expansion05

問題はそこから先でして、10日後が祝日のときの修正をどうしたらいいのだろうかと思ったのです。予め祝日情報がエクセルに入っているのかな?だとしたらどういう風に呼び出すのかなという風に思った次第です。宜しくお願いします。

2005/07/09 14:51:27
id:ton-boo No.2

ton-boo回答回数55ベストアンサー獲得回数52005/07/09 15:35:42

ポイント25pt

Excelには祝日情報は入っていなさそうですね。ProjectやOutlookならあるような話も聞きますが……


なので、祝日リストは別途セルに入力されているものとして1つの案を書きます。


1) 1日後(水曜日)の日付を出します。単純に日付+1の計算です。

2) 同様に11日後(翌週土曜日)の日付を出します。

3) 1の日付(水曜日)から2の日付(土曜日)までの営業日を算出します。NETWORKDAYS関数を使います。このとき、関数の引数として祝日リストが入っているセル範囲を指定します。

4) 上で出した営業日日数から1を引きます。

5) 1で出した水曜の日付に、4で出した営業日日数を足します。WORKDAY関数を使います。


これで計算できると思います。言葉で書くとややこしいですが式は簡単です。ポイントは2つ。

・営業日の考え方を利用すること

・火曜日が休日だったケース、金曜日が休日だったケースを考慮するために、それぞれの翌日となる水曜日と土曜日の日付で計算すること

どうでしょうか。

※URLはWORKDAY関数の説明です。

id:expansion05

やはりこうするしかないですよね。ありがとうございました。

2005/07/09 15:53:56

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません