漫画『酒男子』のAIボットを作ると高級日本酒が当たる!! >>

エクセル2003です。初心者です。

現在、有給の管理表を作っています。

基準日2012/6/1

氏名  入社日     6ヶ月後    1年6ヶ月後   2年6ヵ月後  次回有給付与日 
鈴木  2010/6/1   2010/12/1  2011/12/1   2012/12/1  2012/12/1

↑こんな風に基準日を入れると、次回有給付与日の欄に、
この表の日付のうち、基準日を超えた日を表示できるようにしたいんですが、
そんあ関数はありますか?

よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

#2です。



基準日以降の、付与日ということ?

A1セルに基準日、
H7:L7あたりに、一連の付与日が入力されているのもとして、次回付与日のセルに

=MIN(IF(H7:L7>A1,H7:L7,"2999/12/31"))

配列数式なので、入力後、Shift キーと Ctrl キーを押しながら Enter キーで確定。
A1セルに、=TODAY() と入れて今日の日付を表示させておくと、開いた日の次回付与日が自動表示されます。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申しわけありません。。
kgrjyさんのやり方でできました!!
ありがとうございます^^

お礼日時:2012/06/14 14:16

過去に二つほど似たような質問をしているようですが・・・


http://oshiete.goo.ne.jp/qa/7521405.html ←これと
http://oshiete.goo.ne.jp/qa/7521390.html ←これ
ベストアンサーも付けていなければ締め切ってもいなければ・・・?

日付に関する計算を多用するようでしたら「ツール」→「アドイン」→「分析ツール」にチェックを入れておくと便利です「EDATE」「EOMONTH」他etc・・・が使えるようになります

で、基準日というのは「入社してから2年目」を基準日として指定されているのですか?
このテーブルの作り方だと基準日を参照させたりしますので、一人分のテーブルしか作れないですよね?
(下の行に同じようなテーブルをたくさん作るという非合理的な方法はありますが・・・)

取り敢えず初心者との事ですので氏名から2年6ヵ月までの日付を手入力していたとしての話で…
添付画像参照してください(テーブル2つあります)
1のテーブルで、セルB1に入る式は =EDATE(B4,24)
F4に入る式は =MAX(C4:E4,B1)

2のテーブルの場合、基準日をC列に設ける事によって複数の氏名に対応する形です
セルC2 =IF(A2="","",EDATE(B2,24))
セルD2 =IF(A2="","",EDATE(B2,6*COLUMN(A2)))
セルE2 =IF($A2="","",EDATE(D2,12))の式を入れてF2まで数式をコピー
セルG2 =IF(A2="","",MAX(C2,D2:F2))
C2~G2までを範囲選択してオートフィルを使い数式を下方向へ適当な行数までコピー

あとは、氏名と入社日を入力するだけ全ての日付が返ってはきますけど・・・。
「エクセル基準日を超えた日を表示させたい。」の回答画像4
    • good
    • 0
この回答へのお礼

お礼が遅くなり申しわけありません。。
ありがとうございました^^

お礼日時:2012/06/14 14:17

Lookupで良いと思います。


ただし、Lookupそのままですと、基準値を超えない一番大きな値が選ばれますので、対応範囲を設定して表の日付を一つずらして表示させるようにしています。
添付の図ではB1に基準値が入っているとして、F4セルに↓の式を入れています。
=IF(B1>MAX(B4:E4),"",LOOKUP(B1,B4:D4,C4:E4))

あと、前の質問で問題が解決したのでしたら、一度締め切る事をお勧めします。
http://oshiete.goo.ne.jp/qa/7521405.html
「エクセル基準日を超えた日を表示させたい。」の回答画像3
    • good
    • 0
この回答へのお礼

お礼が遅くなり申しわけありません。。
ありがとうございました^^

お礼日時:2012/06/14 14:17

いくらでもやりようがあるでしょうが、労基法の年次有給休暇付与基準をもとにするなら、



A1:入社日

半年後は
B1:=DATE(YEAR(A1),MONTH(A1)+6,DAY(A1))

その1年後は
C1:=+DATE(YEAR(B1),MONTH(B1)+12,DAY(B1))
    • good
    • 0
この回答へのお礼

お礼が遅くなり申しわけありません。。
ありがとうございました^^

お礼日時:2012/06/14 14:17

基準日、と、基準日を超えた日、の意味が解りませんが、



入社日から6ヵ月後の日を表示するのでしたら、
=DATE(YEAR(B4),MONTH(B4)+6,DAY(B4))

入社日から1年6ヵ月後の日を表示するのでしたら、
=DATE(YEAR(B4)+1,MONTH(B4)+6,DAY(B4))

入社日から2年6ヵ月後の日を表示するのでしたら、
=DATE(YEAR(B4)+2,MONTH(B4)+6,DAY(B4))

でいかがでしょうか。

この回答への補足

書き方がわかりにくくて申し訳ないです。。
基準日を入力すると、次回の有給付与日が自動的に表示されるようにしたいのです。
そういったことは可能でしょうか?

よろしくお願いします。

補足日時:2012/06/11 11:13
    • good
    • 0
この回答へのお礼

お礼が遅くなり申しわけありません。。
ありがとうございました^^

お礼日時:2012/06/14 14:18

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル有給管理表を作りたい

エクセル2003です。エクセル初心者です。

現在有給管理表を作っています。
6ヶ月で10日、1年6ヵ月後で11日、2年6ヵ月後で12日有給がつきます。

基準年月日 2012/6/1

氏名 入社日 前年度から引き継いだ有給 次回有給付与日 次回有給付与数  使用数 残日数
鈴木          15日              2012/6/11      10日       2日    11日


こんな感じの表を作りたいのです。

(1)基準日を入れると自動的に現在の有給残日数が表示されるようにしたい。
基準年月日の部分に日付をいれるとその時点での有給残日数が表示されるようにしたいんです。

残日数は、前年度引き継いだ有給の数-使用数+次回有給付与数になると思うのですが、
この表の鈴木さんの場合、次回有給付与日は、2012/6/11になります。
基準日に2012/6/11以降の日付を入れると、残日数にその数も追加されるようにしたいんです。

(2)6ヶ月で10日、1年6ヵ月後で11日、2年6ヵ月後で12日有給つくのですが、3年6ヶ月で13日つくのですが、それも自動的に入力されるようにしたいんです。

わかりにくい文章ですいません。。
何かアイディアいただければと思います。

よろしくお願い致します。

エクセル2003です。エクセル初心者です。

現在有給管理表を作っています。
6ヶ月で10日、1年6ヵ月後で11日、2年6ヵ月後で12日有給がつきます。

基準年月日 2012/6/1

氏名 入社日 前年度から引き継いだ有給 次回有給付与日 次回有給付与数  使用数 残日数
鈴木          15日              2012/6/11      10日       2日    11日


こんな感じの表を作りたいのです。

(1)基準日を入れると自動的に現在の有給残日数が表示されるようにしたい。
基準年月日の...続きを読む

Aベストアンサー

次のようにしてはどうでしょう。
A1セルには基準年月日と文字を入力しB1セルに2012/6/1というように日付を入力します。
A2セルには氏名、B2セルには入社日、・・・・・G2セルには残日数とお示しの項目名を並べます。
そこでA3に鈴木などと入力しB3セルには入社日、C3セルには別のシートからVLOOKUP関数などで前年度における残り日数を表示させます。D3セルには次の式を入力し下方にドラッグコピーします。

=IF(B3="","",DATE(YEAR(B$1)-IF(AND(MONTH(B$1)>=1,MONTH(B$1)<=3),1,0),MONTH(B3)+6,DAY(B3)))

E3セルには付与日が来た時の付与日数ですが次の式を入力して下方にドラッグコピーします。

=IF(B3="","",IF(D3>=DATE(YEAR(B3)+2,MONTH(B3)+6,DAY(B3)),12,IF(D3>=DATE(YEAR(B3)+1,MONTH(B3)+6,DAY(B3)),11,IF(D3>=DATE(YEAR(B3),MONTH(B3)+6,DAY(B3)),10,""))))

F3セルはその年度のおける使用数を入力します。
G3セルには基準年月日での残りに数を表示させるために次の式を入力して下方にドラッグコピーします。

=IF(A3="","",IF(D3>B$1,C3-F3,IF(D3<=B$1,C3+E3-F3,"")))

なお、ここでは年度は4月1日から翌年の3月31日までが当該年度としています。

次のようにしてはどうでしょう。
A1セルには基準年月日と文字を入力しB1セルに2012/6/1というように日付を入力します。
A2セルには氏名、B2セルには入社日、・・・・・G2セルには残日数とお示しの項目名を並べます。
そこでA3に鈴木などと入力しB3セルには入社日、C3セルには別のシートからVLOOKUP関数などで前年度における残り日数を表示させます。D3セルには次の式を入力し下方にドラッグコピーします。

=IF(B3="","",DATE(YEAR(B$1)-IF(AND(MONTH(B$1)>=1,MONTH(B$1)<=3),1,0),MONTH(B3)+6,DA...続きを読む

Q社内の有給計算式をExcelで作りたいです

2017年の有給の計算をExcelで行いたいと思っています。
社員は20名ほどの小さな会社です。

恥ずかしながらExcelは素人でどのようにしていいか全くわかりません…!
フォーマットなども参照したのですが、条件がうちの会社と違っていてうまく使うことができませんでした…。下記に我が社の有給の条件を記載します。

◆毎年1月1日から12月31日までが対象。基準日は各年度の1月1日。
勤続年数に応じて下記の日にちが付与される。
1年目…12日 
2年目…13日 
3年目…14日 
4年目…16日 
5年目…18日 
6年目以上…20日
※端数月は切り上げ
つまり4月に入社しても10月に入社しても同じ年数としてカウント。

◆翌年度に限り日にちを繰り越すことができる。

◆半日(0.5日)単位で取得できる。

◆また中途入社については入社日に基づいて下記の日にちが付与される。
1月~6月…10日 
7~9月…5日 
10月~12月…2日
(これらの日数も翌年繰り越せる)
※中途入社については入社から半年たたなくても基準日が1月1日なので、翌年になれば
更に12日が付与される。

以上です。
実は計算は年内のうちに手動で終わっているのですが、上司にExcelの表にして確認したいと
いわれました…。あくまでも上司が確認する用で簡単な計算式でOKです。
イメージとしては
2016年 取得日数●日 前年度繰り越し●日 合計有給日数●日 使用日数●日 時効消滅●日
2017年 取得日数●日 前年度繰り越し●日 合計有給日数●日
のみ分かればOKという感じです…。

みなさま、何卒お力を貸してください…!!
宜しくお願い致します……!!

2017年の有給の計算をExcelで行いたいと思っています。
社員は20名ほどの小さな会社です。

恥ずかしながらExcelは素人でどのようにしていいか全くわかりません…!
フォーマットなども参照したのですが、条件がうちの会社と違っていてうまく使うことができませんでした…。下記に我が社の有給の条件を記載します。

◆毎年1月1日から12月31日までが対象。基準日は各年度の1月1日。
勤続年数に応じて下記の日にちが付与される。
1年目…12日 
2年目…13日 
3年目…14日 
4年目…16日 
5年目…18日 
6年...続きを読む

Aベストアンサー

参考になるかな?
http://excel.resocia.jp/report/868/

QExcel:セルに入力されている日付の、半年後の日付を自動表示させたい

誰か教えてください。
A列のセルに「2004/3/4」という日付が入っていたとします。
A列の日付を参照して、B列に「半年後」、C列に「16ヶ月後」という日付を自動表示させたいのですが、そういう事って出来ますか?
出来るとしたらどんな関数を書けばいいのでしょう?
教えてください!

Aベストアンサー

こんにちは。maruru01です。

基本形(半年後)は、

=DATE(YEAR(A1),MONTH(A1)+6,DAY(A1))

です。
(16ヶ月後は、数式中の6→16にする)
ただし、月末の場合は問題があります。
例えばA1に、「2004/8/31」と入力すると、半年後は、「2005/3/3」になります。
これを、「2005/2/28」にするなら、数式を、

=MIN(DATE(YEAR(A1),MONTH(A1)+6,DAY(A1)),DATE(YEAR(A1),MONTH(A1)+6+1,))

とします。
また、分析ツールが利用出来るのなら、

=EDATE(A1,6)

としても、「2005/2/28」という日付が求まります。
なお、分析ツールは、メニューの[ツール]→[アドイン]→[分析ツール]にチェックをすると利用可になります。

Qエクセルで年休を管理 (一日8時間単位で)

お世話になります。別の方の回答を参考にしましたが、うまくいきませんでした。http://oshiete1.goo.ne.jp/qa2676725.html
時間単位の年休管理をしたいと思っているのですが、表示の仕方がわかりませんので教えてください。
例えば、1日8時間勤務だとして、時間単位の年休が取れるとします。40日間の年休のある人が、1時間の年休を取った場合”39日7時間”、別の日に1日(8時間)取った場合”38日7時間”といったように表示させたいのですが、どのようにすればいいのでしょうか。関数について、あまり詳しくありませんのでよろしくお願いいたします。

Aベストアンサー

関数と言うより数式ですね。
要は、1日を8時間で計算したいのでしょう。
ならば、有給休暇を日数で管理せず、時間数で管理する方が楽でしょう。
40日なら320時間です。そこから時間数単位で減算していけば良いでしょう。
1日使ったら8時間として減算すれば良いわけです。
当然、減算につかうセルは、日と時間とで別セルにしておくなどの工夫は必要です。

あとは、何日何時間と表示したければ、その残り時間がセルA1に入っているとしたら、
=INT(A1/8)&"日"&MOD(A1,8)&"時間"
で表示用の計算ができます。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q有給休暇の繰越計算について

当社の規程では、有休の前年繰越は20日を限度として
次年度に繰り越されることになっています。
次の繰越日数の計算はどちらが正しいのか教えて下さい。
前々年度 有休付与日数   平成16年4月1日(14日)・・(A)
前年度    〃      平成17年4月1日(16日)・・(B)
今年度    〃      平成18年4月1日(18日)・・(C)
 ※有休取得日数      なし(多忙により1回も取得せず)

私としては繰越は上限20日なので、20日+18日(C)で38日と
思っていたのですが、会社からは次のような説明があり
(A)は法律で2年満了した時点で失効するため、
今年度の付与日数は(B)+(C)で34日ということでした。
本当に今年度の付与日数は34日で正しいのでしょうか?
入院を控えており、至急教えて下さい

Aベストアンサー

>今年度の付与日数は(B)+(C)で34日ということでした。
本当に今年度の付与日数は34日で正しいのでしょうか?

●はいそうです

限度20日は最高の付与日数に達してからです

勤務日数に応じて
6ヶ月経過後 最初に10日付与 それから1年経過ごとに付与日数が1日ずつ増えていきますですから 
ずっと使わない場合 
1年後(つまり勤務1年6ヶ月後)11日付与で 合計21日
2年後 12日付与で前年の11日と合計23日(最初の10日は2年経過したので消える)
3年後 13日付与で前年の12日と合計25日(前のの11日は2年経過したので消える)
4年後 14日付与で前年の13日と合計27日(前のの12日は2年経過したので消える
5年後 15日付与で前年の14日と合計29日(前のの13日は2年経過したので消える
6年後 16日付与で前年の15日と合計31日(前のの14日は2年経過したので消える
7年後 17日付与で前年の16日と合計33日(前のの15日は2年経過したので消える
8年後 18日付与で前年の17日と合計35日(前のの16日は2年経過したので消える
9年後19日付与で前年の18日と合計37日(前のの17日は2年経過したので消える

10年後20日付与で前年の19日と合計39日(前のの18日は2年経過したので消える

ということで 20日に達するまでは1日ずつ付与が増えていきます
付与の最大が20日なので 2年で最高は40日

前々年の付与日数未満の消化ですと 前々年は消えていきますから
その範囲の消化なら翌年改めて付与されるのでずっと増加していきます

>今年度の付与日数は(B)+(C)で34日ということでした。
本当に今年度の付与日数は34日で正しいのでしょうか?

●はいそうです

限度20日は最高の付与日数に達してからです

勤務日数に応じて
6ヶ月経過後 最初に10日付与 それから1年経過ごとに付与日数が1日ずつ増えていきますですから 
ずっと使わない場合 
1年後(つまり勤務1年6ヶ月後)11日付与で 合計21日
2年後 12日付与で前年の11日と合計23日(最初の10日は2年経過したので消える)
3年後 13日付与で前年の12日と合計25...続きを読む

Q基準日の統一と有給の時効について教えてください

 有給の個別管理が大変なので、今年の1月1日から全員の発生日を統一することになりました。

 私は入社8年、5.1入社で統一前は毎年11.1に有給をもらっており、H19.11.1に20日付与してもらった時点で36日持っていました。基準日の統一により本来H20.11.1に20日もらえるのが、前倒しで1月1日に有給を20日もらえたのです。

 しかし1月の給与明細の残日数は40日、てっきり56日あるものだと思ってたので、人事に「1月1日に20日新たにくれたから56日じゃないのですか?」って聞いたのですが、「就業規則に有給の持分の限度は40日と書いてあるだろう? 40日を超えた分は支給できないから…」って返答。

 前倒しでもらえたので有利ですけど、今持っている内の16日は本来H20.11.1時効のはずなのに、1.1に付与するから時効までが早まるものなのでしょうか? 労基法では有給が発生した日から2年となってますし… 
 
 それとも、就業規則で最大40日と決めてあるので、時効で消えたわけじゃなく、今回4日のみの支給になったという事でしょうか? 会社からの説明によるとこちらの理由のような気がしますが、6年6ヶ月以上勤務した者には20日付与すると法律で決められています。最大日数が40日だからと、今回前倒しに付与することによりオーバーした分をカットできるものなのでしょうか?

 損した分を何とかしてほしいとは思ってません。ただ基準日統一により時効が早まる、就業規則で上限を決めてあるから有給の付与日数を減らす、この2つの方法は合法なのかどうか知りたいのです。

 有給の個別管理が大変なので、今年の1月1日から全員の発生日を統一することになりました。

 私は入社8年、5.1入社で統一前は毎年11.1に有給をもらっており、H19.11.1に20日付与してもらった時点で36日持っていました。基準日の統一により本来H20.11.1に20日もらえるのが、前倒しで1月1日に有給を20日もらえたのです。

 しかし1月の給与明細の残日数は40日、てっきり56日あるものだと思ってたので、人事に「1月1日に20日新たにくれたから56日じゃないのですか?」って聞いたのですが、「就業規則に有給の...続きを読む

Aベストアンサー

法的に検討すれば、会社の取り扱いはおかしいように思います。

雇用関係に関する規定は、労働基準法などの労働法に定めが無ければ、民法に戻って解釈すべきものと解されています。

この点、時効を短縮できるかなど時効そのものの取り扱いについては、労働法に定めがありませんから、民法に戻ることとなります。

そして、民法では、時効の利益については、その利益を有する者が予め放棄することは出来ないものとされています(民法146条)。言い換えると、時効が完成するまでは、時効の効力は絶対なのです。(なお、時効の利益を有する者は、時効完成後、その援用を放棄することは出来ます。)

平成18年11月1日に(例えば)20日間付与された有給休暇は、平成20年10月31日に時効となります(労働基準法115条)。これを前倒しで時効完成させることは、時効の利益を有する労働者側からも出来ませんし、相手方であって時効の利益を有していない会社側はまして出来るはずがありません。

そうすると、お書きのケースにおいて、平成18年11月1日に有給休暇を20日間付与され、次いで平成19年11月1日に同じく20日間付与され、いずれも一切消化しなかった人は、平成19年12月31日現在で、計40日間の有給休暇取得の権利を有していることになります。

このとき、会社が、本来なら平成20年11月1日にこの人へ付与すべき有給休暇20日間を平成20年1月1日に付与したときは、この人は同日現在、
(1)平成18年11月1日に付与され時効未完成である20日間
(2)平成19年11月1日に付与され時効未完成である20日間
(3)平成20年1月1日に付与された20日間
の計60日間の有給休暇取得の権利を有しているはずです。

これを40日間としてしまうのは、時効未完成である(1)をまるまるカットすることになり、明らかに民法146条に反しているものといえます。

そして、民法146条は強行法規と解されていますから、当事者がこれと異なる定め(これに反する定め)を置いても、その定めは無効です。

このように考えれば、今回のケースは、就業規則の定めが今回のケースに限って無効となり、労働者は一定期間の間(※)、最大60日間の有給休暇取得の権利を有するものといえるように思います。

ただ、No.2のさんが「このような処理は以前から認められています」とお書きになっていることから、実務上また労働法上、時効についての民法146条の強行法規性とどう折り合わせているのか、分からないところであり、興味深いところです。


※ 最大60日間となる上記例示なら平成20年10月31日までの間、および、この人がさらに一切の消化をしなければ平成21年1月1日から(平成19年11月1日に取得した有給休暇の時効が完成する)平成21年10月31日までの間が、「一定期間」に該当します。

法的に検討すれば、会社の取り扱いはおかしいように思います。

雇用関係に関する規定は、労働基準法などの労働法に定めが無ければ、民法に戻って解釈すべきものと解されています。

この点、時効を短縮できるかなど時効そのものの取り扱いについては、労働法に定めがありませんから、民法に戻ることとなります。

そして、民法では、時効の利益については、その利益を有する者が予め放棄することは出来ないものとされています(民法146条)。言い換えると、時効が完成するまでは、時効の効力は絶対なの...続きを読む

Qエクセルで6ヵ月後を自動入力できますか?

エクセルで指定した日付からちょど6ヵ月後の日付を
自動入力することはできますでしょうか?

例)
「A1」に「2009/1/7」と入力し「B1」に「2009/7/6」と
自動入力できるようにしたい。

ちなみに用途は定期の購入時期を整理したいためです。
宜しくお願い致します。

Aベストアンサー

=DATE(YEAR(A1),MONTH(A1)+6,DAY(A1))-1

Q年次休暇の取得とのこりの自動計算について

 恐れ入ります。先日年次休暇の計算方法について相談させていただいた者です。
 ご回答をいただき、それをヒントに自分で考えられるかと思ったのですが、難しいので申し訳ありませんが、どうぞよろしくお願いします。

 添付画像のようなレイアウトを考えています。
・あらかじめ去年からの繰り越しを入力しておきます。
 日、半日、時間、分という単位です。
・黄色のセルに、現在の取得年休を入れます。
・自動的に現在の積算年休が表示され、差し引きがわかるようにしたいのです。

 また、次の約束があります。
・1日は7時間45分です。(先日は7時間15分で尋ねましたが、職種により違い、今回は7時間45分をもって1日とする職種の分です)
・半日単位での取得はできますが、半日は時間に換算せず、0.5日という表記にします。
 最終的には「15.5日と3時間15分」といった残数表記にします。
・半日を時分換算しないので、繰り下がりは「日」から「7時間45分」をとってきます。

 レイアウトは多少変わっても構わないので、どうぞよろしくお願いします。

Aベストアンサー

「先日の相談」とは、こちらのことですね。

http://oshiete.goo.ne.jp/qa/8422338.html


前回の回答は計算誤差にまで話が及んで、難しくし過ぎましたかね。

今回の質問文の添付図を見ると、日数・時間数が各セルに分かれていて、各セルには整数のみ記入するという意味ですよね?そうであれば、シリアル値を使わず整数のみで(時間の「分」のみで)最後まで計算することができるので、そういうときは前回も言ったとおり、誤差が発生する可能性を排除できます。


今回の条件で少し難しいのは、「0.5 日を時間に切り崩せない」という点ですね。1 日は崩せるが 0.5 日はできないというのは、たぶん休暇の制度上の制約なのでしょう。よくある話です。

午前と午後の勤務時間数は異なるかもしれませんが、0.5 日は、平均すれば 7 時間 45 分÷ 2 = 3 時間 52.5 分。半日なので、24 時間÷ 2 = 12 時間という見方もある。しかし例えば「0.0 日 4 時間 0 分」→「0.5 日 0 時間 7.5 分」と書き換えることはできず、逆に「0.5 日 0 時間 0 分」→「0.0 日 3 時間 52.5 分」あるいは「0.0 日 12 時間 0 分」とも書けないということですね。

だから半日を含む日数を単純に分に変換するのはダメで、日数の小数点以下を切り捨ててから(つまり半日のセルを除外した日数のまま)分に変換すれば、解決するということになりますね。


この回答の添付図には、次式を記入しています。

F3 =60*d3+e3
K3 =$F3*g3+60*i3+j3
Q3 =int((int(u3/f3)*2+h3-m3)/2)
R3 =mod(int(u3/f3)*2+h3-m3,2)
S3 =int(mod(u3,f3)/60)
T3 =mod(mod(u3,f3),60)
U3 =k3-p3

※ K3 セルをコピーして P3 に貼り付け
※「前年繰越」には「本年取得分」が合算されていると解釈

実は 0.5 という小数の場合は 2 進数に変換しても丸め誤差がないので、そのまま足したり引いたりしても大丈夫だったりもしますが、上式ではあえて整数のまま計算するため、2 を掛けたり割ったりしてみました。


質問文の帳票?の形に計算結果を並べたかったら、この回答の添付図のシートから質問文のシートに、VLOOKUP 関数なりで参照することによって転載すればいいだけですね。隙間なくセルの結合もなく、整然と並んだ表を元データにするのが基本です。方向を逆にしてしまう人が多いのですが。

なお表中の「7」と「45」という数値を材料にして時間のシリアル値を作ることも一応は可能なのですが、誤差の要因を生んでまでシリアル値を使う必要もないので、今回は行いませんでした。

「先日の相談」とは、こちらのことですね。

http://oshiete.goo.ne.jp/qa/8422338.html


前回の回答は計算誤差にまで話が及んで、難しくし過ぎましたかね。

今回の質問文の添付図を見ると、日数・時間数が各セルに分かれていて、各セルには整数のみ記入するという意味ですよね?そうであれば、シリアル値を使わず整数のみで(時間の「分」のみで)最後まで計算することができるので、そういうときは前回も言ったとおり、誤差が発生する可能性を排除できます。


今回の条件で少し難しいのは、「0.5 日を時間に...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング