[[20060911143659]] 『出勤簿の作成』(クロネコ) ページの最後に飛ぶ

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

 

『出勤簿の作成』(クロネコ)
 はじめまして♪
 出勤簿を作成しているのですが、H列「休暇・欠勤」を入力規則を使って、
 全休、午前半休、午後半休、欠勤と4つのリストから選べるようにしました。
 そしてI列「有給勤務時間」に
 H列が全休なら7:35、半休(午前/午後)なら4:40、欠勤なら0:00と最初したところ、
 H列に何も選択せず空欄にしたところI列を使って計算する他のセルが#VALUE!と出てしまいました。
 そのため、H列が空欄の場合も0:00としてみたのですが、やはり#VALUE!のままです。

 =IF(ISBLANK(H10),"",IF(H10="全休","7:35",IF(OR(H10="午前半休",H10="午後半休"),"4:40",IF(OR(H10="欠勤",H10=""),"0:00"))))

 休暇・欠勤の項目は、休暇・欠勤しない限り入力しないようにしたいので、
 もし出来るようでも空欄をいちいち選ぶというのは避けたいです。
 初めての関数で本を見ながらなんとなくやっていますので、他にも間違いがあるかもしれませんが、
 どうかアドバイスお願いいたします。

 winXP Excel2000
 (クロネコ)

 すみません、、わかりづらいので、まとめます。
 H列のリストを何も選択しない状態で、I列を0:00にしたいです。
 上の式で、欠勤の所までちゃんと反映されます。
 リストを選択せず空欄のままだと、I列も空欄のままで、、I列を使った他のセルが
 計算できず#VALUE!となってしまいます。

 宜しくお願いいたします。m(_ _)m
 (クロネコ)


 =IF(H10="全休","7:35",
 IF(OR(H10="午前半休",H10="午後半休"),"4:40",
 IF(OR(H10="欠勤",H10=""),"0:00")))
 と、""とする個所を除かれたらどうでしょう?                   (LOOKUP)

 長々と書いていたら、衝突してしまいました。 以下は、そのままをUPします。

 >そのため、H列が空欄の場合も0:00としてみたのですが、
 >=IF(ISBLANK(H10),"",IF(H10="全休",・・・・・・
   ~~~~~~~~~~~~~~~~~~ 
 最初のIF関数の部分で、H10セルが空白ならば(TRUE)→""となってます。
そのため、この時点で""が返されていますので、
後半の、IF(OR(H10="欠勤",H10=""),"0:00"・・・ 部分は、欠勤の場合のみ反映されます。
最初の部分をカットする(IF(H10="全休"から始める)か、
最初でISBLANK(H10)がTRUEの場合は、 "" → "0:00" にするかです。
(sin)


LOOKUPさま、Sinさま、ありがとうございます!

Sinさまの「最初でISBLANK(H10)がTRUEの場合は、 "" → "0:00"」にしたところ
ちゃんと0:00になって計算されました!

とても分かりやすい説明ありがとうございました。勉強になりました。m(_ _)m

ちなみにLOOKUPさまの、""とする個所とういのはどこを削除したら良いのでしょうか?

もし時間があったらで結構ですので、お教えください。試してみたいと思います。


 =IF(ISBLANK(H10),"",IF(H10="全休","7:35",IF(OR(H10="午前半休",H10="午後半休"),"4:40",IF(OR(H10="欠勤",H10=""),"0:00"))))
        ↓
 =                   IF(H10="全休","7:35",IF(OR(H10="午前半休",H10="午後半休"),"4:40",IF(OR(H10="欠勤",H10=""),"0:00")))

 見やすいように改行を入れたのですが。。                (LOOKUP)

LOOKUPさま

ご丁寧に、とても分かりやすいお返事ありがとうございます^^;
最初の部分なくなっているの気づきませんでした。すっきりしました!

また質問させていただくかもしれませんが、宜しくお願いいたします。m(_ _)m(クロネコ)


 私の説明って、ほんとに分りやすかったのか???
えぐえぐ(ノ_<。)
(sin)

Sinさま
分かりやすかったですよ!視覚的に^ ^;

で、もう1つ質問なのですが、H列「休暇・欠勤」項目を午前半休とした場合、I列「始業時刻」を13:30とし、それ以外を自由に時刻を入力出来るように

したいのですが、=IF(H10="午前半休","13:30","")だと、I10のセルにに自由に数字を入力できません。

こういう場合何か方法はあるのでしょうか?
宜しくお願いいたします。m(_ _)m


 >、=IF(H10="午前半休","13:30","")だと、I10のセルにに自由に数字を入力できません。
 ●上の式をそのまま使う。
一度入力して、変更しないのでしたら、数式はそのままにして、数字入力の際は、そのまま上書き入力してしまう。

 ●入力規則を利用する方法
どこか空いているセルに『13:30』と入力確定し、そのセルを選択した状態で、
【挿入】-【名前】-【定義】で名前の部分に『午前半休』と入力し、OK。
 ※下に出てくる参照範囲に、13:30を入力したセル位置が入っているか、念のため確認してちょ。
 ここまでが、下準備。 次に I10セルを選択し、
【データ】-【入力規則】-【設定】タブで、入力値の種類:リストを選択し、元の値に =INDIRECT(H10) と入力。
【エラーメッセージ】タブを選択し、スタイル:[注意]か[情報]を選択し、OK。
 ※タイトル・メッセージはお好きに入力してください。
 スタイルを注意にする事で、リスト選択および手入力が可能となりますが、午前半休の場合でも手入力が可能です。

 ●という事で、入力規則を利用方法 ぱーとつぅー
【データ】-【入力規則】-【入力時メッセージ】タブ を選択し、
タイトルに 時間に入力に注意!
メッセージに 午前半休の場合は、改行13:30 を入力してください。改行改行それ以外は、ご自由に時間入力してね!
、と入力(上記は例です改行はEnterで改行する意)してOK。これで、I10セルを選択した時点で、上記のメッセージが表示されます。

 ●マクロで処理する方法
専門外の為コメントなし。
(sin) 視覚だけでは理解できないかもね?

Sinさま

お返事ありがとうございます♪

やってみてようやく●入力規則を利用する方法で、なんとなく数字が出てきたのですが、

ドロップダウンではなく、直接表示させることは出来ませんでしょうか?

あと午前半休のときは、E列 始業時刻を13:30、F列 終業時刻を17:15

  午後半休のときは、E列 始業時刻を 8:50、F列 終業時刻を13:35

と表示させたいのですが、1つのセルに入力規則を設定する度に前のがなくなってしまったり

とか上手くいきません。

何かいい方法がありましたらお教えください。m(_ _)m (クロネコ)


 >ドロップダウンではなく、直接表示させることは出来ませんでしょうか? 
という事になると、私に出来ることは、
 >●上の式をそのまま使う。
 >一度入力して、変更しないのでしたら、数式はそのままにして、数字入力の際は、そのまま上書き入力してしまう。
しか分りません。 他では、最後に書いてるマクロになるでしょうが、私は使えません。

 後半の部分に関して・・・
私には、クロネコさんが作られている表も使い勝手(入力の仕方や集計方法 他)も分りません。
私に言える事は、
例えば、E10セルに
=IF(H10="午前半休","13:30",IF(H10="午後半休","8:50","時間をここに入力して!"))
という感じで、式を入力しておいて、自動表示させるか、そのまま上書き入力するか です。
 プラス要素としては、条件付き書式を設定する事で、間違いに対して注意を促すとか。
もしくは、始業時間に関わる列を『入力用』・『半休等への対応用』・『時間確定用』等を設けて、
適切な時間を計算させるとか?
何にしても、どんな要素が考えられ、それに対しどんな処理をするのか を考えるのは、
クロネコさんです。私なんぞは、そのお手伝いを出来るかどうか ぐらいのものです。

 以下、適当な事を書いてみると、こんな感じ。使えるか否かは、条件次第です。
 氏名 日付 出勤区分 始業時間_A 始業時間_B 終了時間_A 終了時間_B 始業時間_確定 終了時間_確定 休憩時間 時間外労働_1 時間外労働_2 時間外労働_3
(sin)


Sinさま

お返事ありがとうございます♪

Sinさまのアドバイスを見て、マクロとやらを見てみましたが、、どうやるかさっぱり
わからないので、

エラーが出ているあたりを手入力してもらうようにしようかと。。

もう1度Sinさまに出して頂いた案を見直して考えてみます。

ありがとうございました。m(_ _)m
(クロネコ)


コメント返信:

[ 一覧(最新更新順) ]


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