[[20180808112246]] 『時間の最小値』(あ) ページの最後に飛ぶ

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

 

『時間の最小値』(あ)

簡単なことかもしれませんが…

例ですが、A列に時間が入力されています(表示形式はh:mm)
A1 22:00
A2 23:00
A3 0:00
A4 1:00

この中で最小値を求めようと
MIN($A$1:$A$4)にしたのですが、22:00よりも0:00の方が小さいと
判断されてしまうようです。
条件を加えると思うのですが、どのようなものを加えればよいでしょうか

よろしくお願いいたします

< 使用 Excel:unknown、使用 OS:unknown >


 =MIN(INDEX(A1:A4+(A1:A4=0),0))
 あるいは
 =MIN(A1:A4+(A1:A4=0))
 と入力してShuftキーとCtrlキーを押しながらEnterキーで式を確定(確定後、式が{}で囲まれればOK)ではどうか。
 (上の方の式は通常通りEnterで確定)

 または0:00ではなく24:00で入力するか(表示は0:00になる)
(ねむねむ) 2018/08/08(水) 11:41

 >22:00よりも0:00の方が小さいと判断されてしまうようです。 

 何が最小値になればいいんですか?
 もしかして22:00?

 だとすれば、なぜ「22:00」が最小値になるのか、その理屈を説明してください。

 とりあえず以上です
(笑) 2018/08/08(水) 11:50

 ああ、0:00以降は一日と〇◯時間という可能性があるか。
(ねむねむ) 2018/08/08(水) 11:54

ねむねむさん

教えて頂いたものでは変わらずでした。

入力は0:00で行いたいです。
(あ) 2018/08/08(水) 11:58


(笑)さん

開始時刻を求めたいのです
夜勤を想定してまして夜勤の始まりが22:00なので最小値にしたいということです。
説明不足ですいません。
(あ) 2018/08/08(水) 12:00


 昇順に並んでいるのであれば一番上のデータを持ってくるので良いのでは?
(ねむねむ) 2018/08/08(水) 13:11

0:00より0:01のほうが大きいという判断をされても構わないというのであればストレートに
=MIN(IF($A$1:$A$4=0,1,$A$1:$A$4))
という手もある気がする。
※配列数式です。Shift+Ctrl+Enterで確定
(名無し) 2018/08/08(水) 13:20

 名無しさんの式はダメだった私の式と実質的に同じだが。
(ねむねむ) 2018/08/08(水) 13:23

作業列に、「=A1+1-INT(A1+TIMEVALUE("2:00"))」という式を埋めておいて、この列の最小をMINで得る、とか。セルの書式設定は「時刻」等にすること。(22時より前は翌日となるので、22時が最小になる)
(???) 2018/08/08(水) 13:26

時間だけ見れば、そりゃあ0:00が最小なのでそのままでは無理です。

非表示でもいいので時間が書かれている列の隣に列を追加して、翌日なのであれば+1をします。

	↓=A2+0	↓=MIN(B2:B5)
22:00	22:00	22:00
23:00	23:00	
0:00	0:00	
1:00	1:00	
	↑=A5+1	

これに工夫してIF文など組み込んでみてください

(TAKA) 2018/08/08(水) 13:29


 で、例示の最小値は「22:00」でいいんですか?

 ・夜勤の開始が22:00とは限らないということ?
 ・A1セルが常に最小値とは限らないということ?

 だとして
 ・夜勤の開始は22:00から、最も遅い場合は何時なんですか?

 ・最小値が「1:00」だとして
  表示が「1:00」であればいいのか
  表示形式を [h]:mm にしても「1:00」でないとダメなのか(「25:00」ではなく)
 どっちですか?

 とりあえず以上です
(笑) 2018/08/08(水) 13:36

こんな感じにしておくと、ただ時間を入れるだけでOKですね。

	↓=IF(A2>=$D$2,A2,A2+1)	↓=MIN(B2:B5)	↓開始時刻
22:00	22:00	                 22:00	         22:00
23:00	23:00		
0:00	0:00		
1:00	1:00		

(TAKA) 2018/08/08(水) 13:37


 TAKAさん方法であればMIN関数の式を
 =MIN(INDEX(A2:A5+(A2:A5<$D$2),0))
 とすると作業列がいらなくなる。

(ねむねむ) 2018/08/08(水) 13:43


後付けばかりで申し訳ありませんが
時間は固定されておらず、その日によって時間が変わります。
なので、0:00をまたぐセルはその日よって変わります。

夜勤開始は22:00が必ずで、終わりは翌日の7:00です。

A1セルが夜勤開始とは限りません。
しかし、式がこれによりかなり複雑になるのであればA1セルに固定でも構いません。

表示形式は入力も表示も1:00が良いです。

色々試してみましたが、知識不足か今のところうまくいきません。
多くの案をいただいてありがとうございます。
(あ) 2018/08/08(水) 14:22


すいません、あと
A1 製品名  B1 開始時刻
A2           22:00 
             23:00
             1:00
A5           2:00

です。時間はその日によって変わります。
工程になっていて、工程ごとにB列の開始時刻を入力します。
別シートでこの日の1番早い開始時刻だけを求めたいです。ここでは22:00です
(あ) 2018/08/08(水) 14:34


	A	B	  C	  D
1	製品名	開始時刻	  22:00	  22:00
2	製品1	22:00		
3	製品2	23:00		
4	製品3	1:00		
5	製品4	2:00		

C1に =MIN(INDEX(C2:C5+(C2:C5<$E$1),0)) と入力。
C2:C5というのは開始時刻の入力されているデータ範囲で
D1というのは固定の開始時刻がかいてあるセルです。

(TAKA) 2018/08/08(水) 14:48


すみません、

C1に =MIN(INDEX(C2:C5+(C2:C5<$D$1),0)) と入力。

に訂正です
(TAKA) 2018/08/08(水) 14:49


何度もすみません、

C1に =MIN(INDEX(B2:B5+(B2:B5<$D$1),0)) と入力。

に訂正です

(TAKA) 2018/08/08(水) 14:55


先ほどの訂正です。
夜勤開始が必ず22:00と書きましたがそうではありませんでした。
その日によって21:30もあれば、22:30もあります。

(あ) 2018/08/08(水) 14:58


上の式なら
開始時間をD1に入力すれば大丈夫です
(TAKA) 2018/08/08(水) 15:00

B列が毎日入力するところで、日々変わります。
D列は今ないのですが、この式で大丈夫でしょうか
説明が下手ですみません。
(あ) 2018/08/08(水) 15:05

 >A1セルが夜勤開始とは限りません。 
 >しかし、式がこれによりかなり複雑になるのであればA1セルに固定でも構いません。

 ↑ の意味が分かりません。

 >その日によって21:30もあれば、22:30もあります。 

 入力している時刻は、すべて夜勤の開始時刻ですよね?
 一番早いので何時なんですか?
 一番遅いのは7:00でいいんですか?

 ◆重要な確認◆
 それと例示の範囲は4行しかありませんけど、実際の範囲はもっと大きいんですよね?
 その中には空白セルもあるんでしょ?

 >表示形式は入力も表示も1:00が良いです。

 ↑ は「25:00」等と表示されるのはNGということ?
 
 ■「25:00」でもいいのなら(表示形式「h:mm」なら「1:00」になる)

 =MIN(IF(B2:B50<>"",B2:B50+(B2:B50<"8:00"*1)))

 ■表示形式を [h]:mm にしても「1:00」にしたいのなら

 =TEXT(MIN(IF(B2:B50<>"",B2:B50+(B2:B50<"8:00"*1))),"h:mm")*1

 どちらも、Ctrl+Shift+Enterで確定(CtrlキーとShiftキーを押しながらEnter)

 以上、参考まで
(笑) 2018/08/08(水) 15:10

あさん、大丈夫ですよ。
ためしにD1に22:00 、 C1に =MIN(INDEX(B2:B5+(B2:B5<$D$1),0)) を入れてみてください。

C1の表示形式を時間表示にするのをお忘れなく。
(TAKA) 2018/08/08(水) 15:21


>しかし、式がこれによりかなり複雑になるのであればA1セルに固定でも構いません。

作業の効率上、A1か空欄で、A2から始めた方が楽な時もあるので、できればそうしたいということです。

>入力している時刻は、すべて夜勤の開始時刻ですよね?

そうです、夜勤の1番早いのが21:30、遅いのが翌7:00です。

それと例示の範囲は4行しかありませんけど、実際の範囲はもっと大きいんですよね?

 その中には空白セルもあるんでしょ?

範囲は4〜29行、空白セルもあります

(あ) 2018/08/08(水) 15:22


TAKAさん

上の式でできました。
何度もありがとうございました。
(あ) 2018/08/08(水) 15:30


 >空白セルもあります
 >C1に =MIN(INDEX(B2:B5+(B2:B5<$D$1),0)) 

 範囲内に空白セルが1つでもあれば、最小値が「0:00」以降の場合
 上の式ではすべて「0:00」(24:00)になってしまうと思いますけど、
 本当にできたんですか?

 以上、確認だけ
(笑) 2018/08/08(水) 15:33

1つでも0:00より前の開始時刻があれば、それが最小値で出ています。
(あ) 2018/08/08(水) 15:42

 >1つでも0:00より前の開始時刻があれば、それが最小値で出ています。

 ???

 最小値が「0:01」以降になることはないということ?

 以上です
(笑) 2018/08/08(水) 15:52

そうです。
夜勤の開始が0:00より遅い時だけ、はありません。
必ず22:00や22:30等の開始が1つはあるので、大丈夫です。
(あ) 2018/08/08(水) 15:55

全く話は変わるのですが、

?@=IFERROR(INDEX(工程表!$B$4:$B$29,MATCH($A10,工程表!$A$4:$A$29,0),MATCH(K$5,工程表!$B$1,0)),"")で

$A$4:$A$29の中に$A10と同じ表記のものがあるとします。仮に$A10に「あいう」$A20も「あいう」
B列が数量でB10が100、B20が200のとき

?@の数式ではセルの上の方、100しか出てこないのですが、100と200の合算300を出したい場合
方法はあるのでしょうか?

(あ) 2018/08/08(水) 16:21


 >全く話は変わるのですが

 新規に質問し直してください。

 その際、K5セルと工程表のB1セルに、それぞれ何が入っているのかを明確にしてください。

 先に言っておくと、普通にSUMIFでできそうですけど?

 以上、確認だけ
(笑) 2018/08/08(水) 16:52

失礼いたしました。
ご指摘の通りSUMIFでできました。
ありがとうございました。
(あ) 2018/08/09(木) 10:52

MIN(INDEX(B2:B5+(B2:B5<$D$1),0))
この式を教えていただきましたが、B列の開始時間が手入力ではなく
数式による計算で時間が出るとき、この式でも大丈夫ですか?

解決した後にすみません
(あ) 2018/08/09(木) 16:34


もちろん大丈夫ですよ

(TAKA) 2018/08/09(木) 16:47


 B列にどんな数式を入れてるんですか?
 それを書いてください。

 数式によっては#VALUE!エラーとかになるでしょうね。

 以上、確認だけ
(笑) 2018/08/09(木) 16:54

=IFERROR($C5+VLOOKUP($A5,$A$30:$C$49,3,FALSE),"")

例のとは違いこのセルはD列で、C列が開始時間です。
A列が製品名です。
終了時間を自動で出すためです。

昨日最少値の式を教えていただいたものを最大値に変えて作った式の方がVALUEになってしまいました。
(あ) 2018/08/09(木) 17:31


 2018/08/08(水) 15:10

 ↑ の回答の式なら問題なくできるはずです、最小値も最大値も。
 試してないんでしょうか?
(終了時間の一番遅いのが何時か知りませんけど・・・)

 最小値は24:00以前に限る、最大値は24:00以降に限る、なんて変な制約もありません。

 なぜ試そうとすらしないのか、その理由を教えてください。

 ところで ↓ の式ですけど
 >=IFERROR($C5+VLOOKUP($A5,$A$30:$C$49,3,FALSE),"") 

 おそらくVLOOKUPは時間を返すんでしょうね?

 C5 23:00 2:00を足すと → D5は 25:00(表示は「1:00」でも)
 C6  1:00    〃     D6は  3:00

 25:00があったり、3:00があったりしますが、それでいいんですか?
 言ってることわかります?

 以上
(笑) 2018/08/10(金) 13:14

一番遅い終了時間は6:00です。
試すというのは式を入れてみるということですよね?
入れた結果VALUEが出てしまっています。
開始時間の最小値はうまくできています。

終了時間のセルに数式をいれたので、それが原因で最大値をうまく検索できないのかと思い質問しました。

<25:00があったり、3:00があったりしますが、それでいいんですか?

正直言いますとわかりません。
計算がうまくいき、表示が1:00の形式であればこちらでは問題ありません。
25:00と3:00のが混在することで、うまく計算できないのでしょうか?
(あ) 2018/08/10(金) 17:11


 >入れた結果VALUEが出てしまっています。

 実際に入れた数式をコピーして提示してください。

 >一番遅い終了時間は6:00です。 

 一番遅い開始時間が7:00で、終了時間が6:00なんですか?

 おかしくないですか?

 以上です
(笑) 2018/08/10(金) 17:33

 念のため確認ですが、試しましたか? と聞いているのは
 2018/08/08(水) 15:10 ← の回答日時の数式ですよ?

 要するに、これ

 >=MIN(IF(B2:B50<>"",B2:B50+(B2:B50<"8:00"*1)))
 >Ctrl+Shift+Enterで確定(CtrlキーとShiftキーを押しながらEnter)

 勘違いしてないでしょうね?

 以上です
(笑) 2018/08/10(金) 22:47

色々勘違いしていました、すみません。

(笑)さんの式を入れると、夜勤の開始時間(最小値)はうまくできました。
終了時間(最大値)の方が23:59が最大になってしまいます。

一番遅い開始時間と終了時間はその日によって変わりますが、
必ず終了は6時までに終わります。
一番遅い開始は5時台になる日もあると思います。
(あ) 2018/08/13(月) 16:35


申し訳ございません。
1をかけるのを忘れておりました。
無事できました。ありがとうございました。

初心者な私に対して、丁寧に2度も助けて頂き、本当に感謝しております。
(あ) 2018/08/13(月) 16:55


コメント返信:

[ 一覧(最新更新順) ]


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