みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

(Excel)範囲中のデータのうち条件に該当するデータのセルの行番号・列番号を取得したいのですが

例えば、B2からF5の範囲にデータが入力されていて、このうち条件に該当するデータ(最大値)のセルの行番号・列番号を取得したいのですが何か良い方法はありますでしょうか。
最大値のセルをアクティブにする方法が分かれば問題は解決するのですが、調べてみても答えが見つかりませんでした。
また、他に良い方法があればぜひともよろしくお願いします。
回答はVBAでもワークシート関数でも、どちらでも結構です。

ExcelはExcel2000、OSはWindows2000を使用しています。

投稿日時 - 2007-06-05 11:19:42

QNo.3058273

困ってます

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

最大値のセルをアクティブにするんですよね?
では関数では無理なのでVBAで。

Sub test()
Dim x, c
x = Application.Max(Range("B2:F5"))
Set c = Range("B2:F5").Find(What:=x, LookIn:=xlValues, LookAt:=xlWhole)
MsgBox c.Address(0, 0) & "セルが最大値です。セレクトします。"
c.Select
End Sub

投稿日時 - 2007-06-05 13:08:36

お礼

問題解決しました。ありがとうございました。

投稿日時 - 2007-06-16 17:56:19

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(5)

[ANo.4の補遺]
B7: =MAX(B2:F5)

投稿日時 - 2007-06-05 15:55:26

行番号:  {=MAX((B2:F5=B7)*ROW(B2:B5))}
列番号:  {=MAX((B2:F5=B7)*COLUMN(B2:F2))}
セル番地: {=ADDRESS(MAX((B2:F5=B7)*ROW(B2:B5)),MAX((B2:F5=B7)*COLUMN(B2:F2)))}
【注】いずれも配列数式

投稿日時 - 2007-06-05 15:51:52

お礼

問題解決しました。ありがとうございました。

投稿日時 - 2007-06-16 17:56:38

ANo.2

次の様な事でしょうか。
行番号=SUMPRODUCT(($B$2:$F$5=MAX($B$2:$F$5))*ROW($B$2:$B$5))
列番号=SUMPRODUCT(($B$2:$F$5=MAX($B$2:$F$5))*COLUMN($B$2:$F$2))

投稿日時 - 2007-06-05 11:55:12

お礼

問題解決しました。ありがとうございました。

投稿日時 - 2007-06-16 17:56:02

ANo.1

行番号
=MAX(INDEX((B2:F5=MAX(B2:F5))*ROW(B2:F5),))

列番号
=MAX(INDEX((B2:F5=MAX(B2:F5))*COLUMN(B2:F5),))

ただしR1C1形式です。

投稿日時 - 2007-06-05 11:48:52

お礼

問題解決しました。ありがとうございました。

投稿日時 - 2007-06-16 17:55:45

あなたにオススメの質問