- ベストアンサー
(Excel)範囲中のデータのうち条件に該当するデータのセルの行番号・列番号を取得したいのですが
例えば、B2からF5の範囲にデータが入力されていて、このうち条件に該当するデータ(最大値)のセルの行番号・列番号を取得したいのですが何か良い方法はありますでしょうか。 最大値のセルをアクティブにする方法が分かれば問題は解決するのですが、調べてみても答えが見つかりませんでした。 また、他に良い方法があればぜひともよろしくお願いします。 回答はVBAでもワークシート関数でも、どちらでも結構です。 ExcelはExcel2000、OSはWindows2000を使用しています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
最大値のセルをアクティブにするんですよね? では関数では無理なので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
その他の回答 (4)
[ANo.4の補遺] B7: =MAX(B2:F5)
行番号: {=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)))} 【注】いずれも配列数式
お礼
問題解決しました。ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
次の様な事でしょうか。 行番号=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))
お礼
問題解決しました。ありがとうございました。
- zap35
- ベストアンサー率44% (1383/3079)
行番号 =MAX(INDEX((B2:F5=MAX(B2:F5))*ROW(B2:F5),)) 列番号 =MAX(INDEX((B2:F5=MAX(B2:F5))*COLUMN(B2:F5),)) ただしR1C1形式です。
お礼
問題解決しました。ありがとうございました。
お礼
問題解決しました。ありがとうございました。