На листе "Лист1" в ячейке R7C53 записана формула массива: {=НАИМЕНЬШИЙ(ЕСЛИ(ДВССЫЛ($AZ$7 )>=$AX$7;ДВССЫЛ($AZ$7));1)} Она вычисляет минимальное значение из диапазона записанного в R7C52 превышающее расчетное значение в ячейке R7C50.
Алгоритм действий: 1. Вычисляем сечение клапана (Высота*ширину). Записываем в ячейку R7C50; 2. В диапазоне $AW$6:$AW$36 (в макросе записано в стиле R1C1) записаны максимальные площади клапанов. 3. Допустим R7C50=0,9, тогда из диапазона $AW$6:$AW$36 должно быть выбрано значение минимально превышающее - это 1. 4. Это значение сцепляется с другими выбранными опциями выбранными в ячейках R7C54, R7C55, R7C56 и производится поиск функцией ВПР (в ячейке R7C58) по диапазону $AS$6:$AS$36. 4. Иногда функция ВПР не находит искомое значение потому что в диапазоне $AS$6:$AS$36 его нет из-за выбранных доп опций. И тогда минимально превышающее значение должно быть найдено 2-е по счету (вместо 1 должно быть подставлено 2). Если ошибка ВПР (в ячейке R7C58), то 3-е по счету и т.д. Такую ситуацию можно получить выбрав соответствующие опции и в ячейке R7C57 будет так "1 2-х позиционныйнетда, 2 шт" (где "1" должно быть изменено см.п.4)
Я пытался решить проблему с помощью цикла в Excel VBA с переменной i в место 1 (это первое минимальное значение которое будет найдено) в формуле: {=НАИМЕНЬШИЙ(ЕСЛИ(ДВССЫЛ($AZ$7 )>=$AX$7;ДВССЫЛ($AZ$7));1)} Но у меня ничего не выходит ...
Всем спасибо, извините за беспокойство! Я отвлекся, выспался и нашел другой подход к решению задачи (с помощью обычных формул). Если надо могу скинуть решение.