[[20260123091827]] 『日時の計算』(雪見大福) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『日時の計算』(雪見大福)

日と時間(8時間制)の計算について、教えてください。
?@−?A=?Bとした場合、以下のような計算結果となるように関数で算出したいと思っております。
よろしくお願いします。

___A_____B_____C_____D_____E_____F
___?@__________?A__________?B
___日____時間__日____時間__日____時間
5__19_____5_____3_____6____15_____7

< 使用 Excel:Excel2021、使用 OS:Windows11 >


 これではどうだろうか?

 E5セル:=INT(((A5*8+B5)-(C5*8+D5))/8)
 F5セル:=MOD((A5*8+B5)-(C5*8+D5),8)

(ねむねむ) 2026/01/23(金) 09:51:24


 実直にIF関数を使う方法
 E5セル
 =IF(B5>=D5,A5-C5,A5-C5-1)
 F5セル
 =IF(B5>=D5,B5-D5,B5+8-D5)

 --------
 無理くりLET関数を使うなら、こんな感じですか。
 E5セル
 =LET(
     a,A5*8+B5,
     b,C5*8+D5,
     HSTACK(QUOTIENT(a-b,8),MOD(a-b,8))
 )

 あ、そうか.Excel2021はHSTACKが使えないので、やむなく、
 =LET(
     a,A5*8+B5,
     b,C5*8+D5,
     CHOOSE({1,2},QUOTIENT(a-b,8),MOD(a-b,8))
 )
 中途半端に複雑にしているだけとも言うかな。

(xyz) 2026/01/23(金) 10:03:30


早速ありがとうございます。
まずは、ねむねむさんへ
仮に、C5=19だとした場合、E5=-1、F5=7となるのですが、
希望する結果は、E5=0、F5=-1としたいです。
よろしくお願いします。
(雪見大福) 2026/01/23(金) 10:35:21

 IF関数で場合分けするだけですから、
 そちらでトライしてください。
 それでも不明でしたら改めて詰まっているところを質問されたらどうですか?

 # 最初からありうるケースを列挙していただきたいですね。
 # 別に回答者に責任があるとも思いません。

(xyz) 2026/01/23(金) 11:04:34


 E5セル:=ROUNDDOWN(((A5*8+B5)-(C5*8+D5))/8,0)
 F5セル:=IF(E5>0,MOD((A5*8+B5)-(C5*8+D5),8),(A5*8+B5)-(C5*8+D5))
 ではどうだろうか?
(ねむねむ) 2026/01/23(金) 11:10:13

 =TEXTSPLIT(TEXTBEFORE(TEXT(SUMPRODUCT(A5:D5,{8,1,-8,-1})/8,"0 ?/8;-0 -?/8"),"/")," ")*1
 TEXTSPLITとTEXTBEFOREは2021だと使えなかったかもしれません
 その場合は無視してください
(´・ω・`) 2026/01/23(金) 11:10:54

 TEXT関数の書式指定がこのままだとまずいですね。こちらで
 =TEXTSPLIT(TEXTBEFORE(TEXT(SUMPRODUCT(A5:D5,{8,1,-8,-1})/8,"0 0/8;-0 -0/8"),"/")," ")*1
(´・ω・`) 2026/01/23(金) 11:26:06

みなさん、ありがとうございます。
もう一つ想定として、A5<C5という場合も考慮しておきたいのですが、
ねむねむさんの以下で対応可能でしょうか?実装してみておらず、すみません。
E5セル:=ROUNDDOWN(((A5*8+B5)-(C5*8+D5))/8,0)
 F5セル:=IF(E5>0,MOD((A5*8+B5)-(C5*8+D5),8),(A5*8+B5)-(C5*8+D5))
 ではどうだろうか?
(雪見大福) 2026/01/23(金) 12:33:58

  A5    B5    C5    D5
  19     5    20     6
 の場合に
  E5    F5
  -1    -9
 の結果となるがこれでOKだろうか?
(ねむねむ) 2026/01/23(金) 12:50:35

ねむねむさん、ありがとうございます。
8時間制の時間になおすと、以下になります。
AB=157時間
CD=166時間
AB-CD=-9時間になるので、希望としては以下の結果になればと思います。
E5=-1(日)
F5=-1(時間)

(雪見) 2026/01/23(金) 12:58:29


 E5 =QUOTIENT(SUMPRODUCT(A5:D5,{8,1,-8,-1}),8)
 F5 =SUMPRODUCT(A5:D5,{8,1,-8,-1})-E5*8
(´・ω・`) 2026/01/23(金) 13:11:04

 F5セル:=(A5*8+B5)-(C5*8+D5)-(E5*8)
 ではどうだろうか?
(ねむねむ) 2026/01/23(金) 13:12:17

 =TRUNC(n/8)
 と
 =MOD(ABS(n),8)*SIGN(n)

 ていう要領でも良さげ...?

(白茶) 2026/01/23(金) 13:36:07


コメント返信:

[ 一覧(最新更新順) ]


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