Смещение диапазона, найденного вручную - PullRequest
0 голосов
/ 03 октября 2018

У меня есть ситуация, когда я использую эти уравнения

=CELL("address",INDEX(J61:W61,MATCH(LARGE((J61:W61),1),J61:W61,0)))

Чтобы найти адрес ячейки ячейки с наибольшим значением в этом диапазоне.

Например, это дает мне это в результате.$ T $ 61 (который содержит наибольшее значение).Теперь я хочу использовать эту информацию и сместить ее вверх на 51 строку, чтобы извлечь заголовок для этого столбца.Как я могу использовать эту информацию и формулу, или VBA, чтобы найти содержание $ T $ 10 в этом случае?

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Я закончил тем, что нашел способ использовать VBA, чтобы делать то, что мне нужно

Sub Top_3_Problems()

First_Address = Range("D62")
Second_Address = Range("D63")
Third_Address = Range("D64")


First_problem = Range(First_Address).Offset(-51)
Second_problem = Range(Second_Address).Offset(-51)
Third_problem = Range(Third_Address).Offset(-51)

Range("B40") = First_problem
Range("B41") = Second_problem
Range("B42") = Third_problem




End Sub
0 голосов
/ 03 октября 2018

Быстрый пример того, как это сделать, в VBA

Это простой пример.Если реализовано, объекты должны быть надлежащим образом квалифицированы с помощью рабочего листа, а метод Find должен иметь добавленные параметры

Option Explicit

Sub MaxHeader()

Dim Found As Range, SearchRange As Range

Set SearchRange = Range("J61:W61")
Set Found = SearchRange.Find(WorksheetFunction.Max(SearchRange))

If Not Found Is Nothing Then MsgBox Cells(10, Found.Column)

End Sub
0 голосов
/ 03 октября 2018

Получение адреса ячейки в этом случае не требуется.Более того, CELL является энергозависимой функцией, поэтому ее следует по возможности избегать.

Просто:

=INDEX(J10:W10,MATCH(MAX(J61:W61),J61:W61,0))

С уважением

...