[[20170615164047]] 『変動型の最大値』(LL) ページの最後に飛ぶ

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

 

『変動型の最大値』(LL)

A列に時間があり、B列にデータがあります。
  A    B  
0:00:01 30
0:00:02 30
0:00:03 40
0:00:04 50
0:00:05 60

時間を自動的に読み込んで、その範囲のMAX値を求めたい。
時間は変動するよになっています。例えば1秒から3秒のMAX値、3秒から5秒のMAX値など自動で最大値を求めたいです。

C1 0:00:01(数式)  C2 0:00:04(数式)

関数式に誤りがある為、計算結果が正しくありません。最大値が求めらません。
=MAX((C1<=A1:A5)*(A1:A5<=C2)*(B1:B5))

正しく修正するにはどうすればよろしいでしょうか?

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 式を確定する際にShiftキーとCtrlキーを押しながらEnterキーを押す。
 (確定後、式が{}で囲まれればOK)
 あるいは
 =MAX(INDEX((C1<=A1:A5)*(A1:A5<=C2)*B1:B5,0))
 ではどうか。
(ねむねむ) 2017/06/15(木) 17:06

ありがとうございます。
目的のことはできました。

実際、BのデータはMID関数でデータを抜き出しています。
元のデータ Sheet2 B1「 39 [c]」それを、「=MID(Sheet2!B1,2,2)」
この場合だと結果が#Valueになってしまいます。

(LL) 2017/06/15(木) 17:19


 B列の計算範囲内で空白になっているセルはあるだろうか?
(ねむねむ) 2017/06/15(木) 17:27

参照元のB列に空白がありました。
空白の処理は現在何もしていません。
(LL) 2017/06/15(木) 17:34

別案で、データベース集計関数を使う方法なぞ。少しレイアウト変更し、1行目にタイトルを付けてます。値に空欄があっても平気。

	A	B	D				E
1	時間	値	時間				時間
2	0:00:01	30	=">=0:00:01"			="<=0:00:04"
3	0:00:02	30		
4	0:00:03	40	最小				最大
5	0:00:04	50	=DMIN(A:B,"値",$D$1:$E$2)	=DMAX(A:B,"値",$D$1:$E$2)
6	0:00:05	60

(???) 2017/06/15(木) 17:50


別案と似たことえを以前試しましたが、結果が0になってしまいました。
(LL) 2017/06/15(木) 17:55

検索条件をD1:E2で指定しているのですが、大小比較の場合、条件はダブルクォートで括り、それを更に = で代入表示します。つまり、私が書いた文字列そのものをセルに代入ですが、ダブルクォートの内側だけ抜き出したりしていませんか?

あと、C列を空けているのですが、詰めて転記していませんか? 列が変われば式も変わりますよ。
(???) 2017/06/15(木) 18:04


 ↓ だとどうなりますか?(Enterだけで確定。範囲はテキトー)

 =MAX(INDEX((C1<=A1:A10)*(A1:A10<=C2)*(0&B1:B10),0))
                                      ~~~~~~~~~~
                                          ↑

 >実際、BのデータはMID関数でデータを抜き出しています。 
 >元のデータ Sheet2 B1「 39 [c]」それを、「=MID(Sheet2!B1,2,2)」 

 それだと数値ではなく「文字列の数字」になってしまう。
 例えば ↓ なふうにすると数値になります。
 =IFERROR(MID(Sheet2!B1,2,2)*1,"")

 こうすれば、最大値は上と同じく =MAX(INDEX((C1<=A1:A10)*(A1:A10<=C2)*(0&B1:B10),0))
 または

 =MAX(IF((C1<=A1:A10)*(A1:A10<=C2),B1:B10))

 下の式はCtrl+Shift+Enterで確定。

 数値ならDMAX関数も使えるでしょう(「文字列の数字」だと「0」になる)

 >C1 0:00:01(数式)  C2 0:00:04(数式) 

 どんな数式ですか?
 演算誤差のことは考えなくてもいいんですかね?

 参考まで。
(笑) 2017/06/15(木) 19:08

ありがとうございます。

お知らせ頂いたこの式で問題が改善できました。

 =IFERROR(MID(Sheet2!B1,2,2)*1,"")

(LL) 2017/06/16(金) 09:59


追加で確認したいことがあります。
MAXと同様にMIN関数とAVERAGE関数を求めたいのですが、MAXを書き換えるだけでは駄目でした。
データには空白がある為、最小値が0になってしまいます。
AVERAGEもMAX関数の式を流用すると結果がおかしくなります。
(LL) 2017/06/16(金) 10:11

MIN関数は自己解決致しました。

(LL) 2017/06/16(金) 10:24


 >AVERAGEもMAX関数の式を流用すると結果がおかしくなります。

 流用と言われても最大値をどんな式にしたのかわからないし、
 結果がおかしいと言われても、どんなデータの場合にどんな結果になったのかわかりません。

 とりあえず AVERAGEIFS 関数を調べてみたらどうでしょうか。

 ところで最小値はどうやって解決したんですか?
(笑) 2017/06/16(金) 22:25

コメント返信:

[ 一覧(最新更新順) ]


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