• ベストアンサー

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

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

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

最大値のセルをアクティブにするんですよね? では関数では無理なので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

noname#128465
質問者

お礼

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

その他の回答 (4)

noname#204879
noname#204879
回答No.5

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

noname#204879
noname#204879
回答No.4

行番号:  {=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)))} 【注】いずれも配列数式

noname#128465
質問者

お礼

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

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.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))

noname#128465
質問者

お礼

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

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

行番号 =MAX(INDEX((B2:F5=MAX(B2:F5))*ROW(B2:F5),)) 列番号 =MAX(INDEX((B2:F5=MAX(B2:F5))*COLUMN(B2:F5),)) ただしR1C1形式です。

noname#128465
質問者

お礼

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