[[20070709143212]] 『ある列内で検査値以上の値が初めて出てくる行値を』(酢ライム) ページの最後に飛ぶ

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

 

『ある列内で検査値以上の値が初めて出てくる行値を返す』(酢ライム)

いつも利用させてもらってます。

前置きはやめて、質問させていただきます。

1.Matchの場合では検査値は数値であり、ある列/行内で一致する数値を返しているのでしょうか。

2.ある検査値以上が初めて出てくる列/行を返したいのですが、どうしたらよろしいでしょうか。

具体的には、

  A   B

 0 10

  1   10.2
  2   11.3
  3   10.4
  4   10.4
  5   10.5
  6   10.6

であった時に、"10.5"以上の値が出る初めての行番号を"2"と返したいです。

Match(10.5,*,+1)でも殆どは求めたい"1"と検出してくれる(1つ手前)のですが、時には"4"となってしまいます。
これが理解不能です。

Matchは全く同じ数字しか返さないのであれば、なんとかエクセルに入っている関数で検出できませんでしょうか。


 >Match(10.5,*,+1)でも殆どは求めたい"1"と検出してくれる(1つ手前)のですが、時には"4"となってしまいます。これが理解不能です。 

 ヘルプをよく確認してください。

 >照合の型 に 1 を指定すると、検査値 以下の最大の値が検索されます。
 >このとき 検査範囲 は、-2、-1、0、1、2、...、A、...、Z、...、ア、...、ン、...、FALSE、TRUE のように
 >昇順で並べ替えられておく必要があります。

 >照合の型 に 0 を指定すると、検査値 に一致する値のみが検索の対象となります。
 >このとき 検査範囲 を並べ替えておく必要はありません。

 >照合の型 に -1 を指定すると、検査値 以上の最小の値が検索されます。
 >このとき 検査範囲 は、TRUE、FALSE、...、ン、...、ア、...、Z、...、A、...、2、1、0、-1、-2、... のように
 >降順で並べ替えられている必要があります。

 で、数値の表の範囲がB1からB6だとして

 =MIN(IF(B1:B6>10.5,ROW(1:6)))
 でどうでしょうか?
 ただし配列数式ですので通常Enterで確定する所をShift+Ctrl+Enterで確定してください。

 また、ROW関数の中は数値の表の行数に合わせてください。

 例:数値がB5からB20に入力されている場合。
 5行目から20行目までは16行あるので
 =MIN(IF(B5:B20>10.5,ROW(1:16)))
 とする。

 (独覚)

独覚さん

ありがとうございました。

このような利用法はエクセル初級ですか?中級ですか?

通常、MINは最小値のみ検出したりしてまして、このようなROWとの組み合わせのやり方、

全く知りませんでした。

何かよい、わかりやすい参考書(事例がたくさん載っているもの)、ご存じありませんか。


 >このような利用法はエクセル初級ですか?中級ですか? 
 少なくとも初級ではないでしょうね。

 >何かよい、わかりやすい参考書(事例がたくさん載っているもの)、ご存じありませんか。 
 一応下記のサイトが参考になるかと。
 (私自身はEXCELの質問掲示板で使い方を覚えたんで参考書はちょっとわかりません)

 「“達人”芳坂和行氏に学ぶ、エクセル(Excel)「配列数式」講座」
http://pc.nikkeibp.co.jp/pc21/special/hr/index.shtml

 (独覚)

 10.5以上を=MATCH()で検索するものは、このようなものもどうでしょう? (6UP)

 =IF(MAX(A1:A6)<10.5,"",MATCH(TRUE,A1:A6>=10.5,))として、Ctrl+Shift+Enter。

コメント返信:

[ 一覧(最新更新順) ]


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