Возник концептуальный вопрос. На листе есть несколько столбцов данных (вложение). В столбце, выделенным зеленом цветом, вычисляется формула на основе максимальных значений в соответствующих столбцах. В красной ячейке - производится суммирование результатов в зеленом столбце.
Подскажите, возможно ли произвести это вычисление средствами excel в одной ячейке? Т.е. фактически без промежуточных результатов в зеленом столбце? Сам я накидал функцию в VBA, но может и без него всё получится? - сам я уже голову сломал(
Спасибо
Коллеги, доброго времени суток.
Возник концептуальный вопрос. На листе есть несколько столбцов данных (вложение). В столбце, выделенным зеленом цветом, вычисляется формула на основе максимальных значений в соответствующих столбцах. В красной ячейке - производится суммирование результатов в зеленом столбце.
Подскажите, возможно ли произвести это вычисление средствами excel в одной ячейке? Т.е. фактически без промежуточных результатов в зеленом столбце? Сам я накидал функцию в VBA, но может и без него всё получится? - сам я уже голову сломал(
Да известно куда я пропадаю - работа всё(( Сначала на старой работе большой проект доделывал, теперь вот на новом месте все заверте... Я циннично хочу много денег, вот и приходится)))
Получается, ключ - в замещении МАКС() на операцию сравнения двух диапазонов... Но вот если диапазонов - не два, а три или более(вложение). Придется сравнивать два диапазона между собой, а потом результат - с третьим диапазоном, и так далее?
Я то все пытался именно через МАКС(). Кажется, он не массивный, но вроде там через ИНДЕКС() можно было финт опрокинуть? Или это уже за гранью добра и зла?
Спасибо большое.
Да известно куда я пропадаю - работа всё(( Сначала на старой работе большой проект доделывал, теперь вот на новом месте все заверте... Я циннично хочу много денег, вот и приходится)))
Получается, ключ - в замещении МАКС() на операцию сравнения двух диапазонов... Но вот если диапазонов - не два, а три или более(вложение). Придется сравнивать два диапазона между собой, а потом результат - с третьим диапазоном, и так далее?
Я то все пытался именно через МАКС(). Кажется, он не массивный, но вроде там через ИНДЕКС() можно было финт опрокинуть? Или это уже за гранью добра и зла?ElenHim
Алексей, здесь я бы предложил UDF. Выбирается диапазон, где первый столбец - всегда множитель, в нашем случае 100. Но если будет меняться - формула учтёт.
[vba]
Код
Function Rio_Action(rngX As Range) As Double
Dim A As Long: Dim B As Long: Dim X As Long A = rngX.Rows.Count: B = rngX.Columns.Count
For X = 1 To A Rio_Action = Rio_Action + (1 - Application.Max(Range(rngX.Cells(X, 2), rngX.Cells(X, B)))) * rngX.Cells(X, 1) Next X
Алексей, здесь я бы предложил UDF. Выбирается диапазон, где первый столбец - всегда множитель, в нашем случае 100. Но если будет меняться - формула учтёт.
[vba]
Код
Function Rio_Action(rngX As Range) As Double
Dim A As Long: Dim B As Long: Dim X As Long A = rngX.Rows.Count: B = rngX.Columns.Count
For X = 1 To A Rio_Action = Rio_Action + (1 - Application.Max(Range(rngX.Cells(X, 2), rngX.Cells(X, B)))) * rngX.Cells(X, 1) Next X