2016-05-02 9 views
2

Я ищу формулу для определения максимального значения минимальных значений подряда, обратите внимание на изображение для примера:найти максимальное значение столбца минимального значения строки

example

Как вы можете видеть, теперь я делаю min каждой строки и чем max колонны из минут, но моя проблема в том, что мне нужно сделать это в таблицу, которая заполняется с внешним подключение данных, и каждый раз, когда я обновляю данные, количество строк изменяется, поэтому я не могу вставить мин. co lumn, потому что я не знаю, сколько строк мне нужно (и, во всяком случае, лучше не вставлять другой столбец) ... Поэтому мне нужна формула для получения этого результата с использованием ссылок на таблицы.
Мне также нужна авария мин.

Я не очень разбираюсь в формулах массива, и я не могу понять, как я могу указать формулу, что она должна сначала оценить строку (a, b, c, d) для получения min и затем оцените массив мин., полученный для поиска max (или аватар).

Любая помощь оценили

Этторе

Edit:
Я забыл сказать, что есть несколько столбцов в таблице, и некоторые из этого должны быть пропущены в оценке мин рассмотрим изображение ниже:

second example

ответ

0

Рассмотрим следующую UDF():

Public Function MiniMax(r As Range) As Variant 
    Dim wf As WorksheetFunction, i As Long, j As Long 
    Dim nLastRow As Long, nLastColumn As Long 
    Dim nFirstRow As Long, nFirstColumn As Long 
    Dim numrow As Long, numcol As Long, k As Long 

    nLastRow = r.Rows.Count + r.Row - 1 
    nLastColumn = r.Columns.Count + r.Column - 1 
    nFirstRow = r.Row 
    nFirstColumn = r.Column 
    numrow = r.Rows.Count 
    numcol = r.Columns.Count 

    With Application.WorksheetFunction 
     k = 1 
     ReDim ary(1 To numrow) 
     For i = nFirstRow To nLastRow 
      ary(k) = .Min(Range(Cells(i, nFirstColumn), Cells(i, nLastColumn))) 
      k = k + 1 
     Next i 

     MiniMax = .Max(ary) 
    End With 
End Function 

enter image description here

и если вы хотели автоматическое расширение или сжатие диапазона, то это могут быть размещены несколькими различными способами.

определяемые пользователем функции (UDF) очень проста в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает свежий модуль
  3. пасты вставьте и закройте окно VBE

Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003 года, вы должны сохранить файл как .xlsm, а не.XLSX

Чтобы удалить UDF:

  1. вызвать окно VBE как выше
  2. ясный код из
  3. закрыть окно VBE

Чтобы использовать UDF из Excel:

= myfunction (A1)

Чтобы узнать больше о макросах в целом, см:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

и

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

и конкретики по UDF, см:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

макрокоманд должен быть включен для этого работать!

+0

Спасибо за exaustive ответ, onestly я не считал, чтобы построить apposite функции, я думал, что с формулами массива я мог бы решить мою проблему, но и пользовательские функции это нормально для меня. Взгляните на редактирование для уточнения моего вопроса, так или иначе используя пользовательскую функцию, я думаю, что смогу найти решение самостоятельно с вашим вводом – EttoreP