
No.8
- 回答日時:
No.6 です。
計算誤差が発生する具体的なケースを前回載せていませんでしたね。
誤差は、たまにしか発生しません。さらにそのうちのごく一部に過ぎませんが、例えば添付図 A 列の時間を入力すると、B 列では誤差が発生していることが分かります。
たとえ A 列には整数しか入力しなかったとしても、小数である「7:15」のシリアル値にそもそも誤差が含まれているため、それを使っている限り、誤差が残る場合があるのですね。
整数化は、一つの有効な誤差対策です。全体の数式は、ちょっと長くなってしまいますが。
15 桁以下の整数は、Excel において、(小数から誤差を引き継いだりしていなければ)誤差を含みません。だから整数だけを使って計算すれば、確実に正しい結果が得られます。
次の D2 セルの数式は、(1) A 列の時間を 100 倍して整数化し、(2)それを分単位に直すとともに小数から引き継いでいる誤差を ROUND 関数によって除去し、(3)「7:15」も分単位に直してから((60*7+15)分)、ご質問の日数・時間数を算出しています。分単位(の 100 倍)だから、全部整数になっていますね。
誤差対策なし
B2 =int("1:00"*a2/"7:15")&" 日と "&text(mod("1:00"*a2,"7:15"),"h 時間 m 分")
7 桁残し
C2 =int(round("1:00"*a2/"7:15",7))&" 日と "&text(round(mod("1:00"*a2,"7:15"),7),"h 時間 m 分")
整数化
D2 =int(round(60*a2*100,0)/((60*7+15)*100))&" 日と "&int(mod(round(60*a2*100,0),(60*7+15)*100)/(60*100))&" 時間 "&mod(mod(round(60*a2*100,0),(60*7+15)*100),60*100)/100&" 分"
C 列・D 列の一致
E2 =c2=d2
なお C2 の方法では、7 桁くらいがちょうどいい桁数です。
誤差を除去する際、四捨五入により残す桁数が少ないほど確実に除去でき、ある程度の桁数さえあれば、ムダにたくさん残していなくても正確な時間のシリアル値に一致してきます。しかし、あまりにも桁数が少ないと、前回から説明しているものとは別の種類の誤差を生んでしまいます。
添付図のように 1,000.00 以上 10,000.00 未満の時間を入力する場合は、最低限 6 桁は必要ですが、余裕を見て 1 桁増やし、小数点第 7 位まで残すこととしました。上の計算では小数点第 14 位・15 位あたりの数字がずれると考えられるので(入力値と「7:15」という 2 数で 1 回演算する場合はそうなる)、この桁数で確実に誤差を除去できていると考えられます。
もしも入力値を小数点第 3 位までにしたいという場合は、8 桁を残すようにすればいいでしょう。

No.7
- 回答日時:
通常ですと、Excelでシリアル値による時間を扱う際には計算誤差が生じる恐れを考えなくてはなりませんが、本件の場合では、時間休をシリアル値ではなく、時間(hour)単位で扱うため、計算誤差が生じる恐れを考慮しなくても済む分、処理が楽になる面があります。
しかしながら、7時間15分を1日として扱う必要がある事によって、計算誤差の処理など比べ物にならない程に、面倒な事になっています。
今仮に、Aさんの前年度繰越の年次休暇がB2セルに、1回目に摂った時間休の値が(時間[hour]単位で)D2セルに、2回目に摂った時間休の値がE2セルに、3回目に摂った時間休の値がF2セルに、それぞれ入力されているものとします。
同様に、Bさんの前年度繰越の年次休暇がB5セルに、1回目に摂った時間休の値がD5セルに、2回目に摂った時間休の値がE5セルに、3回目に摂った時間休の値がF5セルに、それぞれ入力されていて、
Cさんの前年度繰越の年次休暇がB8セルに、1回目に摂った時間休の値がD8セルに、2回目に摂った時間休の値がE8セルに、3回目に摂った時間休の値がF8セルに、それぞれ入力されているものとします。
そして、時間単位で各時間休の値が入力されているセルの1つ下のセルに、時間休の値を関数を用いて日時分に換算した値を表示させ、
同じく2つ下のセルには休暇日時の残の値を表示させるものとします。(添付画像を参照の事)
まず、D3セルとD4セルの書式設定の表示形式を[ユーザー定義]の
[<1]h"時間"mm"分";d"日と"h"時間"mm"分"
にして下さい。
次に、D3セルに次の関数を入力して下さい。
=IF(ISNUMBER(D2),D2/24+INT(D2/7.25)*(1-7.25/24),"")
次に、D4セルに次の関数を入力して下さい。
=IF(AND(ISNUMBER(D2),ISNUMBER(1/(IF(ISNUMBER(LEFT($B2,FIND("日",$B2)-1)+0),LEFT($B2,FIND("日",$B2)-1)*7.25,0)+(0&REPLACE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(ASC($B2)," ",),"と",),"間",),1,IF(ISNUMBER(FIND("日",$B2)),FIND("日",$B2),0),)&IF(AND(ISNUMBER(FIND("時間",$B2)),ISERROR(FIND("分",$B2))),"0分",""))*24>=SUM($C2:D2)))), (IF(ISNUMBER(LEFT($B2,FIND("日",$B2)-1)+0),LEFT($B2,FIND("日",$B2)-1)*7.25,0)+(0&REPLACE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(ASC($B2)," ",),"と",),"間",),1,IF(ISNUMBER(FIND("日",$B2)),FIND("日",$B2),0),)&IF(AND(ISNUMBER(FIND("時間",$B2)),ISERROR(FIND("分",$B2))),"0分",""))*24-SUM($C2:D2))/24+INT((IF(ISNUMBER(LEFT($B2,FIND("日",$B2)-1)+0),LEFT($B2,FIND("日",$B2)-1)*7.25,0)+(0&REPLACE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(ASC($B2)," ",),"と",),"間",),1,IF(ISNUMBER(FIND("日",$B2)),FIND("日",$B2),0),)&IF(AND(ISNUMBER(FIND("時間",$B2)),ISERROR(FIND("分",$B2))),"0分",""))*24-SUM($C2:D2))/7.25)*(1-7.25/24),"")
次に、B2~B4のセル範囲内にあるセルを結合して下さい。
次に、D3~D4の範囲をコピーして、E3~F4の範囲に貼り付けて下さい。(必要があれば、貼り付ける範囲を更に右方向に拡大しても構いません)
次に、D2~F4の範囲をコピーして、同じ列の5行目以下に貼り付けて下さい。
以上で準備は完了で、後はB列に前年度繰越の年次休暇を入力してから、D列~F列の2行目、5行目、8行目に、摂った時間休の値を時間(hour)単位で入力しますと、その1つ下のセルに入力した時間休の値を日時分形式に変換した値が表示され、そのまた下のセルに休暇の斬日時が表示されます。
尚、この方法で表示する事の出来る休暇の日数は31日までで、それを超える日数を正しく扱う事は出来ませんので、注意して下さい。

No.6
- 回答日時:
手を打っていないと、計算誤差により、正しい答えを表示しないケースがあります。
それでも大体合っていれば気にしないという方針もあるのかもしれませんが、特に MOD 関数がマイナスの時間が発生させる場合は、数式全体がエラーになってしまうので、イマイチです。次式は、ROUND により誤差対策をしています。ですから A 列をいろんな時間に書き換えても、正しく表示すると思います。
B1 =int(round("1:00"*a1/"7:15",7))&" 日と "&text(round(mod("1:00"*a1,"7:15"),7),"h 時間 m 分")

No.5
- 回答日時:
>たとえはAさんは20日、Bさんは15日3時間、Cさんは6日2時間15分
無理にやって出来ない事はありませんが、素直に
20日×7.25時間=145時間残り
15日×7.25+3時間=111時間45分残り
といった具合に「何時間残してるのか」に数字を戻してから今年度の「1時間単位」の消費を計算していくような手順をお勧めします。
またその際は、分単位で残してた時間の取り扱いを具体的にどうする事にしてるのかとかも、あなたの会社のやり方をしっかり条件提示してもらう必要があります。
>さらに、もうひとつ甘えさせてください。
お断りします。
こういう具合にダラダラとついでについでに違う事も聞いちゃえと、終わらないご相談があんまり多くて迷惑しています。
また元のご相談がすっかり無かったことになって、新しい方が解決すると嬉しくなっちゃうのも「元のご相談に回答してくださった皆さん」に大層失礼と思いませんか。
このご相談は「7時間15分を1日で数える計算方法について」のご質問でした。
それが解決したらこのご相談は一回「解決」の操作で閉じてから、新しいご相談は別のご質問として新たに投稿してください。
そうしてくれたら、追加ご質問の「具体的な計算式の立て方」とかについても、改めて回答できるかもしれません。(もちろん他の皆さんからも、きっとまた良いやり方が幾つも寄せられると思いますけど。)
No.4
- 回答日時:
A1には「16」と「1時簡単位」で記入します。
>7時間15分をもって「1日休」と換算
7時間15分を1時間単位で表すと7.25時間です。
これだけの時間数ごとに「1日」なので、計算は
=INT(A1/7.25) & "日" & TEXT(MOD(A1,7.25)/24,"h時間mm分")
といった具合にすることもできます。
#まぁ個人的には
=TEXT(A1*"1:0"/"7:15","d日")&TEXT(MOD(A1*"1:0","7:15"),"h時間mm分")
とかしますけど。
#余談ついでにA1に「16時間15分」のつもりで「16.15」とか記入したい場合
=TEXT(TEXT(A1*100,"0!:00")/"7:15","d日")&TEXT(MOD(TEXT(A1*100,"0!:00"),"7:15"),"h時間mm分")
とかで。
みなさん、大変迅速な御回答ありがとうございます。
回答者4様のところでまとめてお礼させてください。
さらに、もうひとつ甘えさせてください。
人によって前年度繰越の年次休暇が違うとします。
たとえはAさんは20日、Bさんは15日3時間、Cさんは6日2時間15分
この繰越年次休暇から消費した「○日△時間◇分」を引いた残りをエクセル上で実現したいのです。
一度にお尋ねせず、すみません。
No.3
- 回答日時:
24時間は1日ですね
A1に7:15
A2に16を入れ
B2に日数
C2に残り時間を求めます
B2=INT(A2/24/$A$1)
C2=MOD(A2/24,$A$1)
No.2
- 回答日時:
A列に任意の時間数を h:mm の書式で入力することを条件にして、B列に日数、C列に端数時間を算出することで良ければ次の式で良いでしょう。
B2=INT(A2/"7:15")
C2=MOD(A2,"7:15")
結果を添付画像で確認してください。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで休憩時間を引く時と、引かない時の数式 3 2022/11/05 11:48
- Excel(エクセル) エクセルでの延長表計算式を教えてください 5 2022/12/21 12:20
- Excel(エクセル) エクセルの早退時間を計算したいです。計算はうまくいっているようですが… 1 2022/12/26 16:22
- 所得・給料・お小遣い 週休3日制のシフト制の日割り計算を教えてください。 給与 22万(総支給) 週休3日制 10時間勤務 1 2022/05/25 07:54
- 労働相談 有給の計算について 3 2023/05/20 13:11
- 労働相談 有給休暇使用時の賃金の計算方法について 5 2022/04/04 00:02
- その他(ビジネス・キャリア) 日報の実務労働時間の集計について困っています。 2 2023/06/09 19:00
- アルバイト・パート 22年10月から社会保険適用拡大について、詳しい方いらっしゃいましたら教えてください 2 2022/09/01 20:40
- 人事・法務・広報 4月からの残業60時間以上の割増の計算式 2 2023/03/14 14:44
- 求人情報・採用情報 月単位、週40時間の変形労働時間制で、 日曜祝日土曜半日の固定休+シフト制(平日一日)の企業の場合、 1 2023/08/10 23:43
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで「500時間」を「何日と何時間」で表示したい
その他(パソコン・スマホ・電化製品)
-
エクセルの使い方 1日=7時間45分 計算方法
Excel(エクセル)
-
エクセルでの計算式もしくはシートの作り方 1日を7時間45分に
財務・会計・経理
-
-
4
年次休暇の取得とのこりの自動計算について
Excel(エクセル)
-
5
エクセルで年休を管理 (一日8時間単位で)
Excel(エクセル)
-
6
エクセルで○時間△分を○。□時間にしたいのですが
Excel(エクセル)
-
7
エクセルのセル書式で「何日と何時間何分何秒」を出す方法
Excel(エクセル)
-
8
時間から日数を計算
Access(アクセス)
-
9
時間の計算について教えて下さい。
数学
-
10
エクセルで秒を日時間分秒に変換する方法
Excel(エクセル)
-
11
〖エクセル〗MOD関数で、小さな数字を大きな数字で割り算した場合が理解できません
Excel(エクセル)
-
12
エクセル 時間の割り算の方法
Excel(エクセル)
-
13
Excelの計算式で、時間を人工に変えたい
Excel(エクセル)
-
14
エクセルで作業時間数や残業時間の計算をしたいのですが。。。(6進数?)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセル ドロップダウンリスト...
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】列を折りたたみ非表...
-
9月17日でサービス終了らし...
-
【マクロ】アクティブセルの時...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【画像あり】オートフィルター...
-
他のシートの検索
-
エクセルの循環参照、?
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報