Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11824 / 13646 ツリー ←次へ | 前へ→

【13834】時間の切り上げ処理がうまくいかない megu 04/5/14(金) 18:38 質問[未読]
【13835】Re:時間の切り上げ処理がうまくいかない ichinose 04/5/14(金) 19:27 発言[未読]
【13836】Re:追伸・・・・ ichinose 04/5/14(金) 19:43 発言[未読]
【13838】Re:追伸・・・・ megu 04/5/14(金) 19:51 発言[未読]
【13837】Re:時間の切り上げ処理がうまくいかない megu 04/5/14(金) 19:49 発言[未読]
【13914】Re:時間の切り上げ処理がうまくいかない megu 04/5/17(月) 9:46 お礼[未読]

【13834】時間の切り上げ処理がうまくいかない
質問  megu  - 04/5/14(金) 18:38 -

引用なし
パスワード
   こんにちは
いつもお世話になってます
今回はVBAというよりは、Excelの計算式で詰まったので、ここに投稿して良いものか迷ったのですが、他に信頼できるところが思い当たらなかったので投稿しちゃいました
ちょっと文が長くなります(スミマセン)

複雑なことはしていません
時間の計算をしようとしているのです
文字で説明すると面倒なのでサンプルを出します

(例)
9時出社・18時退社を所定の勤務時間として、所定外の時間の合計を求める
そして、分単位は時間単位に切り上げ(4:15→5:00)

   A   B   C      D
1  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
2  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
3  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
4  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
5           =SUM(D2:D5)
6           =CEILING(D6,"1:00") ←ココがおかしい

D5に4日分の所定外時間の合計がでます
D6に所定外時間の合計を切り上げた時間が出ます
上記の例では、
 D1〜D4は『0:15』となります
 D5は0:15*4で『1:00』と表示されます
 D6はこの場合、分を切り上げ(CEILING)します
 分が00ということは切り上げするものが無いので『1:00』と表示されるはずです
 しかし、なぜか『2:00』と表示されます

どうやら『計算によって求められた0:15』が『4つ以上』あり、D5の『SUMで1時間単位』のピッタリな数値になった場合にこの現象が起こるようなんです
この条件に当てはまらない場合は、D6は『1:00』と表示されます
また、D1〜D4に『0:15』を手入力した場合はD6は『1:00』となりました

もうわけが分かりません(TT
これってExcelのバグなんでしょうか??
それとも私が悪いのでしょうか??

どなたか分かる方いましたらお願いします〜m(_ _)m

ちなみに以下の環境のどれもダメでした(TT
WinXP Pro + Excel2003
WinXP Pro + Excel2002
Win98SE + Excel2000
Win2000Server + Excel2002

【13835】Re:時間の切り上げ処理がうまくいかない
発言  ichinose  - 04/5/14(金) 19:27 -

引用なし
パスワード
   ▼megu さん:
こんばんは。
>(例)
>9時出社・18時退社を所定の勤務時間として、所定外の時間の合計を求める
>そして、分単位は時間単位に切り上げ(4:15→5:00)
>
↓この例題、B2-A2-C2は、???

>   A   B   C      D
>1  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
             =(B1-A1-C1)-"8:00" ですね?
>2  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
>3  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
             =(B3-A3-C3)-"8:00" ですね?

>4  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
             =(B4-A4-C4)-"8:00" ですね?

>5           =SUM(D2:D5)
            =sum(d1:d4)
>6           =CEILING(D6,"1:00")
            =ceiling(d5,"1:00")

だと思ってよろしいですよね?

何回か「=sum(d1:d4)」が「1:00」なる値を組み合わせて入力してみましたが、
正しい値が表示されています。
>Win98SE + Excel2000(sp-3)
です。

が、何せ小数ですから、起こりうる話かもしれません。
「=sum(d1:d4)」の合計値は、正しい値を示しているのですよね?

Ceiling関数のところを以下で試してみて下さい。

「=CEILING(TEXT(D5,"h:m"),"1:00")」

【13836】Re:追伸・・・・
発言  ichinose  - 04/5/14(金) 19:43 -

引用なし
パスワード
   例えば、18:15と表示されいても、
実際は、18:15:01
等と言う事はありませんか?
私の方で正しい値が示されているので・・・
ちょっと気になりました。

【13837】Re:時間の切り上げ処理がうまくいかない
発言  megu  - 04/5/14(金) 19:49 -

引用なし
パスワード
   ▼ichinose さん:
こんばんは。

>↓この例題、B2-A2-C2は、???
うがっ!!(゜□゜)
記述ミスでした
>>   A   B   C      D
>>1  9:00 18:15 1:00 =(B2-A2-C2)-"8:00"
>            =(B1-A1-C1)-"8:00" ですね?
>だと思ってよろしいですよね?
そのとおりです。
あと、この計算式はA出社B退社C休憩のつもりでした(遅

>何回か「=sum(d1:d4)」が「1:00」なる値を組み合わせて入力してみましたが、
>正しい値が表示されています。
>>Win98SE + Excel2000(sp-3)
ぅゎ・・・正しく表示されますか・・・
なんでかな・・・(==

>が、何せ小数ですから、起こりうる話かもしれません。
小数値があやしいとは思ってるんですけどどうしてもわからなくて・・・

>「=sum(d1:d4)」の合計値は、正しい値を示しているのですよね?
SUMは正しい値を示しているのですが・・・(TT

>Ceiling関数のところを以下で試してみて下さい。
>「=CEILING(TEXT(D5,"h:m"),"1:00")」
うちにEXCELの環境がないので('A`) 月曜に試しますです。
それまで報告できないです。すみません。

【13838】Re:追伸・・・・
発言  megu  - 04/5/14(金) 19:51 -

引用なし
パスワード
   ▼ichinose さん:
>例えば、18:15と表示されいても、
>実際は、18:15:01

これは18:15:00になってたはずです。
ここは問題ないはずです。はい。

【13914】Re:時間の切り上げ処理がうまくいかない
お礼  megu  - 04/5/17(月) 9:46 -

引用なし
パスワード
   ▼ichinose さん:
おはようございます。

>Ceiling関数のところを以下で試してみて下さい。
>「=CEILING(TEXT(D5,"h:m"),"1:00")」
これを試したところうまく動きました(^^
う〜む。
それにしても、なんで誤動作をしていたんだろう・・・
謎です・・・

なにはともあれ解決できました。
ichinoseさんありがとうございました〜。

11824 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free