• ベストアンサー

最大値となるセルの絶対番地を知りたいのです。

指定配列中の相対位置を返すMATCHではなく、 絶対番地、できれば(i,j)それぞれ行と列を返す方法 を関数でお願いします。 "A10"形式でもOKですが、"R1C1形式"ですと行と列の 取り出し方が分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.2

こんちは 行位置 =INT(MAX(INDEX((セル範囲=MAX(セル範囲))*ROW(セル範囲)*257+COLUMN(セル範囲),))/257) 列位置 =MOD(MAX(INDEX((セル範囲=MAX(セル範囲))*ROW(セル範囲)*257+COLUMN(セル範囲),)),257)

その他の回答 (3)

回答No.4

ANo.1です。 最大値が複数あった場合の処理はどうするのでしょうか? とりあえず、一番下の行位置を得るには、 =SUMPRODUCT((MAX(セル範囲+ROW(セル範囲)/1000)=セル範囲+ROW(セル範囲)/1000)*ROW(セル範囲)) で出来ます。 該当する最大値の中で、一番上の行位置を得るのは、 =SUMPRODUCT((MAX(セル範囲+(1-ROW(セル範囲)/1000))=セル範囲+(1-ROW(セル範囲)/1000))*ROW(セル範囲)) です。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

MATCH は、相対位置ですね。だから、絶対位置に換えてあげれば済むことです。 =MATCH(MAX(R1C1:R20C1),R1C1:R20C1)+ROW(R1C1)-1 というように、+ROW(R1C1)を、範囲の先頭の番地を入れて、それを足して、1を引けばよいのですが、マトリックス(格子)で出すのでしょうか? マトリックスでは、MATCH の引数には使えませんね。 特にR1C1形式でも、変わらないと思いますが、例えば、R1C1:R20C4 までの範囲でしたら、 行: =LARGE(IF(MAX(R1C1:R20C4)=R1C1:R20C4,ROW(R1C1:R20C4)),1) 列: =LARGE(IF(MAX(R1C1:R20C4)=R1C1:R20C4,COLUMN(R1C1:R20C4)),1) これらは、配列数式ですから、配列の確定を、入力したら、F2を再度押して、Ctrl とシフトを押しながら、Enterで確定してあげます。ただし、これも相対位置ですから、検索範囲と、ROW(),COLUMN()の中を同じ範囲にしてあげればよいですね。 たぶん、これでできるかと思います。

回答No.1

こんなので、どうですか? =SUMPRODUCT((セル範囲=MAX(セル範囲))*ROW(セル範囲)) これで、行位置が取り出せます。 列はROWをCOLUMNにかえれば同じです。

rick_dom
質問者

補足

ありがとうございます、早速やってみました。 ですが、最大値が二つあるとその二つ分が合算される?様です。 一つしかない場合は上手く動きました。 何か手はないでしょうか?m(__)m