- 締切済み
Excelで最大値最小値の検出
皆さん こんばんは。 データのExcel配列は下記のようになっています。空白セル(数は不定)を境目に異なるグループに分け、各グループの最大値あるいは最小値を(グループごとに計算すればできますが、データの量が多いので手間かかります)一遍で検出したいですが、何かいい方法はないでしょうか。皆さん教えてください。宜しくお願い致します。 A列 B列 C列 D列 (時間) (データ) (最大値) 〈最小値) 0:00 7.316784186 0:05 7.178492184 0:10 7.031467139 0:15 0:20 0:25 0:30 4.878174647 0:35 3.402687629 0:40 2.051343872 0:45 0.420805671 0:50 0:55 2.175188612 1:00 2.849337126 1:05 3.256652642 1:10 1:15 4.427495186 1:20 1:25 1:30 1:35 6.008051928 1:40 6.773041277 ・ ・ ・ ・ ・ ・ ・ ・
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、「0:00」と入力されているセルが、Sheet1のA2セルであるものとします。 まず、作業列として使用するための適当な列(例えばSheet2のA列)を選んで下さい。 次に、Sheet2のA2セルに次の数式を入力して下さい。 =Sheet1!$B2="" 次に、Sheet2のA2セルをコピーして、Sheet2のA3以下に(Sheet1のB列のデータが存在している最下段の行を確実に上回るまで)貼り付けて下さい。 次に、Sheet1のC2セルに次の数式を入力して下さい。 =IF(AND(NOT(ISNUMBER($B1)),ISNUMBER($B2)),MAX(OFFSET($B2,,,MATCH(TRUE,Sheet2!$A2:INDEX(Sheet2!$A:$A,MATCH(99^9,$B:$B)+1),0))),"") 次に、Sheet1のD2セルに次の数式を入力して下さい。 =IF(AND(NOT(ISNUMBER($B1)),ISNUMBER($B2)),MIN(OFFSET($B2,,,MATCH(TRUE,Sheet2!$A2:INDEX(Sheet2!$A:$A,MATCH(99^9,$B:$B)+1),0))),"") そして、Sheet1のC2~D2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。 以上で完了です。 尚、元のデータに対して、セルや行の削除、切り取り、挿入等の、セルの位置関係がずれる様な編集が行われる可能性がある場合には、入力する各数式を次の様に変更して下さい。 Sheet2のA2セルに入力する数式 =INDEX(Sheet1!$B:$B,ROW())="" Sheet1のC2セルに入力する数式 =IF(AND(NOT(ISNUMBER(INDEX($B:$B,ROW()-1))),ISNUMBER(INDEX($B:$B,ROW()))),MAX(OFFSET(INDEX($B:$B,ROW()),,,MATCH(TRUE,INDEX(Sheet2!$A:$A,ROW()):INDEX(Sheet2!$A:$A,MATCH(99^9,$B:$B)+1),0))),"") Sheet1のD2セルに入力する数式 =IF(AND(NOT(ISNUMBER(INDEX($B:$B,ROW()-1))),ISNUMBER(INDEX($B:$B,ROW()))),MIN(OFFSET(INDEX($B:$B,ROW()),,,MATCH(TRUE,INDEX(Sheet2!$A:$A,ROW()):INDEX(Sheet2!$A:$A,MATCH(99^9,$B:$B)+1),0))),"")
お礼
kagakusuki 様 ご丁寧なお答え有難うございます。 問題はお掛け様で解決できました。非常に助かりました、再びお礼を申します。 今度またいろいろと教えてください。