[[20070307234536]] 『祝日の扱い』(☆ヒロ) ページの最後に飛ぶ

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

 

『祝日の扱い』(☆ヒロ)

 現在勤怠表を作成していて、一部式が成り立たず試行錯誤しており
 皆様のお力をお借りしたく。
 やりたいことは次のことです。

 別途作成している祝日シートと日付をつき合わせて、祝日であれば祝日と表示し、祝日でなければ空白にしたいのです。
 ←本当は祝日と平日の残業表示で祝日の残業は祝日のみ表示されるようにしたいのですが、以下が解決すれば分かるので。

 以下のようにするとエラーになってしまいました。どうしたらいいのでしょう?

 名前ボックス【祝日】のところを以下のようにしています。

 AA1:西暦を入力
 AA2=DATE($AA$1,1,1)
 AA3=IF(WEEKDAY(AA2)=1,AA2+1,"")
 AA4=DATE($AA$1,1,14-WEEKDAY(DATE($AA$1,1,0),3))

※以下12月の祝日まで同じように式を入力して1年の祝日設定。

 A列に日付を設定しています。
 B9=IF(MATCH($A9,祝日,0),"祝日","")

とすると、例えば2007年でA9=1月1日なら祝日と表示されるが、A9=1月2日なら#N/Aとなってエラーになってしまうんです。

どうか無知な私を助けて下さい。お願いします。


 IF関数をHELPで調べると、
 「論理式   真または偽のどちらかに評価できる値または式を指定します。」
 と言う記述があります。

 しかし、MATCH($A9,祝日,0)この関数は、祝日の範囲にA9の値が無ければ
 #N/Aと言うエラー値を返します。
 これは、真でも偽でもないですよね?

 たとえば、現在の理論式をISERROR関数(エラー値かどうかを調べて、真偽を返す)
 の中に入れて、その日付がない(#N/A→TRUE→"")か、ある(日付→FALSE→"祝日")
 かとしたり、 MATCH関数ではなく、COUNTIF関数を使う(0なら""、1なら"祝日")
 のはどうでしょうか?

 (HANA)

 HANAさんありがとうございます!!
 確かに今のままじゃ駄目ですね^^。論理的におかしかったです。
 ISERROR関数を今まで使用してなかったので思い浮かびませんでした
 試してみます。

 (☆ヒロ)

コメント返信:

[ 一覧(最新更新順) ]


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