アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (4件)

こんなので、どうですか?



=SUMPRODUCT((セル範囲=MAX(セル範囲))*ROW(セル範囲))

これで、行位置が取り出せます。
列はROWをCOLUMNにかえれば同じです。

この回答への補足

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

補足日時:2005/04/26 19:40
    • good
    • 2

こんちは



行位置 =INT(MAX(INDEX((セル範囲=MAX(セル範囲))*ROW(セル範囲)*257+COLUMN(セル範囲),))/257)
列位置 =MOD(MAX(INDEX((セル範囲=MAX(セル範囲))*ROW(セル範囲)*257+COLUMN(セル範囲),)),257)
    • good
    • 5

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()の中を同じ範囲にしてあげればよいですね。

たぶん、これでできるかと思います。
    • good
    • 0

ANo.1です。


最大値が複数あった場合の処理はどうするのでしょうか?

とりあえず、一番下の行位置を得るには、

=SUMPRODUCT((MAX(セル範囲+ROW(セル範囲)/1000)=セル範囲+ROW(セル範囲)/1000)*ROW(セル範囲))

で出来ます。
該当する最大値の中で、一番上の行位置を得るのは、

=SUMPRODUCT((MAX(セル範囲+(1-ROW(セル範囲)/1000))=セル範囲+(1-ROW(セル範囲)/1000))*ROW(セル範囲))

です。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています