[[20110218172000]] 『土、日、祝日は対象外にした日付を出すには?』(ハオ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『土、日、祝日は対象外にした日付を出すには?』(ハオ)
 いつもお世話になります。
 今月27日が締切日だとします。
 ただし、祝日、祭日がある場合は次の日に繰り越したいことにどの数式を使えばいいか悩んでいます。
 (例:今月の2/26だったら、2/28に自動的に繰り越し)
 他のシートに祝日用のを作成したのがあります。

 どなたかご教授をお願いします。

 エクセルは2000です。
 よろしくお願いします。

 =WORKDAY(日付のセル-1,1,祝日のセル範囲)
 (Gray)

Gray様
 ご連絡が遅くなり申し訳ございません。
 レスをありがとうございます。
 入力してくださった数式を試しましたが
 「#VALUE!」とエラー表示されました。
 私の入力が間違っていると思いますが、
 日付のセルというのは「今日」のことでしょうか?
 そうであれば、※"TODAY()"と入力したセルを用意するということでしょうか?
 また
 =WORKDAY(日付のセル-1,1,祝日のセル範囲)
 の中に"日付のセル"と"-1"がつながっているようですが、途中に「,」を入れますか?
 よろしくお願いします。
 ハオ

 >=WORKDAY(日付のセル-1,1,祝日のセル範囲)
        ↑
 例えばA1セルに日付がある場合、WORKDAY(A1-1,1,祝日)

 という事です★

 >私の入力が間違っていると思いますが、
 >日付のセルというのは「今日」のことでしょうか?
 >そうであれば、※"TODAY()"と入力したセルを用意するということでしょうか?

 上記で質問されてますが、それは回答者側が質問したい事ですね(^_^;)

 エラーが出るのであれば、その入力された数式を掲示してみて下さい♪

 (MJ12)

MJ12様
 レスをありがとうございます。
 私の説明不足で申し訳ございません。
 最初から日付表示はございません。
 私の希望は、締切日が27日だということを固定にし、TODAY()から自動的に日を表示させたいのです。
 例えば、2月、3月だったら28日を。4月だったら27日を。
 という感じです。

 エラーが出たのは
 A1に=TODAY()と入力し、B1にWORKDAY(B1-1,1,祝日のシート)と入力した場合です。
 WORKDAY(B1,-1,1,祝日のシート)も同様でした。
 A1を他に2011/2/27と入力しても同様の結果でした。
 ハオ


 WORKDAY(B1-1,1,祝日のシート) 
 って入力したときも「#VALUE!」エラーだったの?
 とりあえずWORKDAYをヘルプで調べてどういう関数か勉強したら?
 (春日野馨)

 失礼しました!ミスです。

 誤
 A1に=TODAY()と入力し、B1にWORKDAY(B1-1,1,祝日のシート)と入力した場合です。

 正
 A1に=TODAY()と入力し、B1にWORKDAY(A1-1,1,祝日のシート)と入力した場合です。


春日野馨様
 1点分かりましたが、もしかしたら「祝日のシート」の影響のようです。
 私が作成した祝日のシートは

 2011/1/1 元日
	 振替
 2011/1/10 成人の日
 2011/2/11 建国記念の日
	 振替
 2011/3/21 春分日
	 振替
 2011/4/29 昭和の日
	 振替
 2011/5/3	 憲法記念日
 2011/5/4	 みどりの日
 2011/5/5	 こどもの日
	 振替
 2011/7/18 海の日
 2011/9/19 敬老の日
	  国民の休日
 2011/9/23 秋分の日
	  振替
 2011/10/10 体育の日
 2011/11/3 文化の日
	  振替
 2011/11/23 勤労感謝の日
	  振替
 2011/12/23 天皇誕生日
	  振替
 2011/12/31 年末年始

 のように振替のあるところは空白になっています。
 空白のところに影響を受け、エラーとして表示されるようです。
 となるとCONCATENATE関数しかないでしょうか?

 ハオ

    |[A]      |[B]                                                                          
 [1]|2011/2/21|=WORKDAY(DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>27),26),1,祝日のシート)
 [2]|         |                                                                             
 [3]|         |                                                                             
 [4]|         |                                                                             
 [5]|         |                                                                             

 えーと、まず…祝日のシートですが、もしかして日付と文字が同じセルに入ってます?
 もし入っていたら日付だけにして下さい(^^ゞ

 間に空白があっても構いません。日付だけを範囲指定し(祝日のシート)にして、
 上記の数式を入れてみて下さい★

 因みに、today()からということでしたが、何を入れても構いません♪
 当月の27日を超えたら、翌月の27日が出るようにしましたが問題ありませんか?

 (MJ12)

MJ12様
 レスをありがとうございます。
 すいません。ダメでした。
 何度もテストを行った結果、祝日のシートが原因だというのが分かりました。
 春日野馨様の返事に書きましたが、振替のない所は空白を返すのでその空白がエラーとなるそうです。
 空白を削除する方法はVLOOKUP関数しかなさそうで、下記URLを参照にして作成しましたが、
 http://oshiete.goo.ne.jp/qa/326998.html
 問題は
 3 =IF(VLOOKUP(2,$A$1:$C$11,1)=2,VLOOKUP(2,$A$1:$C$11,3),"")
 4 =IF(VLOOKUP(3,$A$1:$C$11,1)=3,VLOOKUP(3,$A$1:$C$11,3),"")
 5 =IF(VLOOKUP(4,$A$1:$C$11,1)=4,VLOOKUP(4,$A$1:$C$11,3),"")
 のところに2,3,4の数字を手入力をしなければいけないようで、これがすごく手間で
 なんとか省略する方法がないでしょうか?
 何度も申し訳ございません。
 よろしくお願いします。
 ハオ

 ハオさん

 いやいやいや…そのお返事の内容を見て自分も書いたのですが、
 まず、『祝日のシート』というのは、セル範囲の名前を定義してるものですよね?
 この辺りが大事なような気がします(^^ゞ空白は関係ありませんよ!!

     |[A]         |[B]       
 [1] |元旦        |2011/1/1  
 [2] |成人の日    |2011/1/10 
 [3] |建国記念日  |2011/2/11 
 [4] |振替休日    |          
 [5] |春分の日    |2011/3/21 
 [6] |振替休日    |          
 [7] |昭和の日    |2011/4/29 
 [8] |振替休日    |          
 [9] |憲法記念日  |2011/5/3  
 [10]|みどりの日  |2011/5/4  
 [11]|こどもの日  |2011/5/5  
 [12]|振替休日    |          
 [13]|海の日      |2011/7/18 
 [14]|敬老の日    |2011/9/19 
 [15]|国民の休日  |          
 [16]|秋分の日    |2011/9/23 
 [17]|振替休日    |          
 [18]|体育の日    |2011/10/10
 [19]|文化の日    |2011/11/3 
 [20]|勤労感謝の日|2011/11/23
 [21]|振替休日    |          
 [22]|天皇誕生日  |2011/12/23
 [23]|振替休日    |          

 とすると、このB列だけを名前の定義します!例で言うとB1:B23を範囲指定し、

 その範囲に名前を付けます。『祝日のシート』にして試して下さい★

 VALUEになるのは全部を指定しているからではないでしょうか?

 (MJ12)


 振替休日の日付けが空白になってたら振替休日は休日扱いしない、ってことになるけどいいのかな?
 (春日野馨)

 B4セルにはおそらく
 =IF(WEEKDAY(B3)=1,B3+1,"")
 の様な式が入っていて「""」が返されているので
 エラーになっているのではないでしょうか。

 他に何に使っているか分かりませんが
 「""」ではなく「0」を返すと良いのかもしれません。

 (HANA)

 >B4セルにはおそらく
 >=IF(WEEKDAY(B3)=1,B3+1,"")
 >の様な式が入っていて「""」が返されているので
 >エラーになっているのではないでしょうか。

 あっ、そういうことなんだ。
 だとすると私の
 >振替休日の日付けが空白になってたら振替休日は休日扱いしない、ってことになるけどいいのかな?
 ってのは的外れでした。
 (春日野馨)

 自分が思うには、振替休日の箇所が空白なので、空白を飛ばしてセルを表示する…で検索し

 たまたまgooに辿り着き、それを見て試してみた…のでは?と思ってまして、、、

 名前の定義の箇所がよく分かってらっしゃらないのかな?と思い掲示した次第です(^^ゞ

 >私の希望は、締切日が27日だということを固定にし、TODAY()から自動的に日を表示させたいのです。
 >例えば、2月、3月だったら28日を。4月だったら27日を。

 ↑だけであれば、

 =WORKDAY(DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>27),26),1,祝日のシート)

 等でいいと思うのですが、VALUEが出るって事で、間違っているのは

 名前の定義の部分だけでは?と思います…が、どうでしょう(・・;)

 (MJ12)


MJ12様
 レスをありがとうございます。
 名前の定義!!存在は知っていましたが、全然使っていませんでした。。。
 すいません。私の理解不足でなかなか話をすすめられなくて。。。
 本当に申し訳ありません。
 B1:B23を範囲指定をし、"祝日のシート"と名前定義した後、
 A1はTODAY()。B1は=WORKDAY(DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>27),26),1,祝日のシート)
と数式を入力しましたが、
 #VALUE!とエラー表示されました汗
 もしかしてエクセル2000は対象していない数式だったりですか?汗

 春日野馨様、HANA様
 HANA様のおっしゃる通りです。
 本当に説明不足でした。。。汗
 すいません。

 ここにエクセルを貼り付ける機能があれば話がスムーズにすすめられますね。
 言葉にして相手に伝えるってのはなかなか難しいです。
 私の勉強不足ということも原因の一つですが。

 ハオ

 ご説明だけで、同じ問題がこちらでも起こせるのか
 確認してから 投稿して貰うと良いと思いますよ。

 新しいシートに ご説明だけでデータを作ってみる。
 >私が作成した祝日のシートは
 > ・・・・・
 >のように振替のあるところは空白になっています。
 この説明をみて、この表を作る。

 。。。まぁ、セル番地の情報が無いので
    どこに作れば良いのか からして分かりませんが。。。

 それから、
 >A1に=TODAY()と入力し、
 >B1にWORKDAY(A1-1,1,祝日のシート)
 の式を入れる

 。。。これまた 「祝日のシート」の所は実際にはセル番地が書いてあったのでしょうけど。。。

 新しいブックで 書いてあるようにして作った祝日の範囲では
 エラーはおきませんね?

 ご質問の際は
  そちらで使っているのと同じファイルが作れるだけの情報
   (どんな表があるのか。どこにあるのか。シート名はなにか。
    その表の実体は何か。数式?値?)
  同じ問題をおこすための手順
 等、事細かに書くようにしてもらえると良いと思います。

 何が関係しているのか分からなくても、
 一度ご自身が投稿しようと思っている文章をみて
 同じ状態のファイルを 0から作った時に
 現在の問題が出ない様であれば
 説明に不足が有ることは明らかに成ると思います。

 それにしても
 >もしかしてエクセル2000は対象していない数式だったりですか?汗
 って書いてあるってことは、まだ解決していない?

 (HANA)

HANA様
 そうですね。。。
 確かにおっしゃるとおり、私が作成したエクセルファイルから説明するよりも
 別のエクセルファイルを1から作って、これを説明していった方が相手に伝わり易いですね。
 ご教授をありがとうございます!

 >それにしても
 >>もしかしてエクセル2000は対象していない数式だったりですか?汗
 >って書いてあるってことは、まだ解決していない?

 はい、未解決です。。。
 また「#VALUE!」と表示されます汗

 まだエラーになりますか(+o+)

 どうしてだろう(*_*;

 一度、名前の定義で検索してみて下さい!!

 定義の部分しか考えられないと思うのですが(^^ゞ

 (MJ12)

 >確かにおっしゃるとおり、私が作成したエクセルファイルから説明するよりも
 >別のエクセルファイルを1から作って、これを説明していった方が相手に伝わり易いですね。
 ぢゃなくて。。。

 問題の出ているファイルが有りますよね?
 それを見て
 「ファイルはこんな状態で、こうしたら こういうエラーが出て困ってる」
 と質問文を書きますね?

 その後、自分で書いた説明文だけを見ながら ファイルを一つ作ってみる。
 (多くの回答者がやっている事を、ご自身もやってみる。)
 それで、確かにエラーが出ることを確認してから 投稿する。

 すると、それを見た人は 同じ環境のファイルが作れて
 しかも、貴方が直面している問題も しっかり目に見えて分かるので
 対策のコメントも付けやすく成ります。

 >また「#VALUE!」と表示されます汗
 に関しては、「""」=長さ0の【文字列】が返されているのが問題なので

 >>「""」ではなく「0」を返すと良いのかもしれません。
  ↑
 祝日を計算している数式の事ですよ?

 ただし、先にも書きましたが他に何に使っているか分からないので、
 他の部分との整合性がとれなくなる可能性も有りますが。

 やってみて駄目でしたか?
 でしたら、こちらの検証不足かもしれませんね。
 もう一度詳しく教えて下さい。
  セル番地 入っている数式 入っているデータ 等

 (HANA)

MJ12様、HANA様
 無事解決しました。
 HANA様のコメントを見逃してしまいました。

 >「""」ではなく「0」を返すと良いのかもしれません。
 が原因でした。

 本当に長い時間をかけてしまい申し訳ありません。
 ご迷惑をおかけしました。

 尚
 D2=日付入力(なぜかTODAY()で入れると祝日全体がエラーになってしまうので、手入力にしています)
 A2(元旦)==DATE($D$2,1,1)
 A3(振替)==IF(WEEKDAY(A2,1)=1,A2+1,"0")
 A4(成人の日)==DATE($D$2,1,IF(2>=WEEKDAY(DATE($D$2,1,1),1),2-WEEKDAY(DATE($D$2,1,1),1)+((2-1)*7)+1,8-WEEKDAY(DATE($D$2,1,1),1)+((2-1)*7)+2))
 A5(建国記念日)==DATE($D$2,2,11)
 A6(振替)==IF(WEEKDAY(A5,1)=1,A5+1,"0")

 という数式で入れております。

 ハオ

 すいません。
 数式ができないのでできることしか考えておらず、最初私が求めていることから外れてしまいました。
 このやり方は私が求めているものではないです。申し訳ありません。

 締切日が毎月26日と決まっています。
 現在(2/21)にエクセルファイルを開くと
 A1に2011/2/28と表示。(2/26は土のため)
 3/1にエクセルファイルを開くと、A1に2011/3/28と表示。(3/26は土のため)
 4/1にエクセルファイルを開くと、A1に2011/4/26と表示。(4/26は火のため)

 という風にA1が変わっていくという感じで表示させたいのです。
 このためにはどのような数式があるかどうかご教授をお願いします。 

 ハオ

 >D2=日付入力(なぜかTODAY()で入れると祝日全体がエラーになってしまうので、手入力にしています)
 にも関連する話なのですが。。。。

 DATE関数は分かりますか?
 例えば A2(元旦)のセルに入っている DATE($D$2,1,1)
 ですが。

 それから、要するに↓の式の
 WORKDAY(A1-1,1,祝日のシート)
         ~~ここの所が「今年の今月の26日」に成れば良いのですよね?

 YEAR関数や、MONTH関数も調べてみて下さい。

 (HANA)
 

HANA様
 ありがとうございます。
 http://www.relief.jp/itnote/archives/003192.php
 を見て無事解決しました!

 =WORKDAY(DATE(YEAR(A1),MONTH(A1)+1,1),-1,祝日のシート)

 本当に何度も申し訳ありませんでした。
 ハオ

 すいません。
 ミスでした。
 上記のは月末を求めるものでした。
 =WORKDAY(DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>27),27)-1,1,祝日のシート)
 が私が求めている答えです。

 ハオ

HANA様
 >DATE関数は分かりますか?
 >例えば A2(元旦)のセルに入っている DATE($D$2,1,1)
 >ですが。

 すいません。
 この関数は他のURLからコピペしたもので、実際DATEの関数がどう役割を果たすかは意味はあまり分かっていません。
 間違っていたということでしょうか?

 ハオ

 間違っていません。

 >>D2=日付入力(なぜかTODAY()で入れると祝日全体がエラーになってしまうので、手入力にしています)
 の問題や、今回の数式
 >=WORKDAY(DATE(YEAR(A1),MONTH(A1)+(DAY(A1)>27),27)-1,1,祝日のシート)
 を作製するにあたり、分かっていれば良いと思って質問してみました。

 ご自身が使う物なのですから、確認する様にした方が良いと思いますよ。

 (HANA)

 HANA様
 まだまだ私は至らぬ点があり、不明点も複数ありますが、
 少しずつ理解していきたいと思います。

 今回は本当に色々ありがとうございました。

 ハオ

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.