Возможна ли формула меньше 110 знаков (с учетом "=")? Задача проста: на прерывном диапазоне (разрывы могут быть произвольные, количество параметров фиксировано - 5 столбцов выделены цветом) найти минимальное значение, которое не равно нулю. Файл-пример прилагаю. В избушку не стал выкладывать по причине кажущейся "обычности" задачи.
Да нет никакого подвоха. Сегодня коллега подошёл с этим вопросом. Я накидал по-быстрому и подумал, что много проще можно. Уже отвык писать формулами Решил вот на форум вопрос забросить. По задаче, нужно выбрать минимальное значение из пяти столбцов (построчно). В последней строке стоит ответ 2. Нужно проставить формулу в других строках. Я хотел в избушку закинуть, поэтому свою формулу стер, поставил знаки вопроса.
vikttur написал: Какой критерий "нужности" столбцов? Минимальные находить построчно?
Виктор, цвет (их всего 5). Да, построчно. Т.е. в формуле 5 переменных (ячеек). Ладно не буду мучить, вопрос у меня больше к тому, что обрабатывается не массив,а дискретные ячейки, как их обработать скопом на неравенство нулю я быстро не сообразил (грешен, признаюсь).
bedvit написал: так можно только с неразрывным диапазоном.
В примере неразрывный диапазон в строке, но между нужными столбцам разрывы. Формула должна работать как формула массива. В масиве констант условии единицами указаны нужные столбцы
Немассивно: =МИН(ЕСЛИ(ИНДЕКС(A1:L1;Ч(ИНДЕКС({1;3;5;8;12};)))>0;ИНДЕКС(A1:L1;Ч(ИНДЕКС({1;3;5;8;12};))))) =НАИБОЛЬШИЙ(ИНДЕКС(A1:L1;Ч(ИНДЕКС({1;3;5;8;12};)));СЧЁТ(1/ИНДЕКС(A1:L1;Ч(ИНДЕКС({1;3;5;8;12};))))) То же, летуче: =МИН(ЕСЛИ(Ч(СМЕЩ(A1;;{0;2;4;7;11}))>0;Ч(СМЕЩ(A1;;{0;2;4;7;11})))) =НАИБОЛЬШИЙ(Ч(СМЕЩ(A1;;{0;2;4;7;11}));СЧЁТ(1/Ч(СМЕЩ(A1;;{0;2;4;7;11}))))
Следствие из третьего закона Чизхолма: "Даже если ясность изложения исключает неверное толкование, все равно найдется кто-то, кто поймет Вас неправильно."
Вот для чего и нужен форум. Варианты, явно лучше моего. По размеру PerfectVam, выигрывает. Правда все же массивная формула, для неискушённого пользователя - риск сломать. Ну и еще столбцы новые не вставишь, старые не удалишь, если идти через массив. Но в условии этого не было, просто отступление, для сравнения вариантов. Всех Благодарю!
bedvit, Честно сижу теоретически в отпуске без экселя тока логические предположения под конякой PerfectVam, спасибо это и была моя идея просто на телефоне долго ставить точки с запятой
Да с разделителем заходит. Формула от Сергея в обработке PerfectVam, на данный момент самая короткая. Но массивная. От Виктора есть не массивные, длиннее победителя, но короче моей. Все они через массив, поэтому чувствительны к вставке/удалению столбцов. Мая самая примитивная и длинная вышла. Зато сломать сложнее) Впрочем это не удивительно, чем сложнее программа, тем легче сломать.
Немассивна, некритична к изменению количества промежуточных столбцов: =НАИБОЛЬШИЙ((A1;C1;E1;H1;L1);СЧЁТ(1/ИНДЕКС((A1;C1;E1;H1;L1);;;Ч(ИНДЕКС({1;2;3;4;5};)))))
И еще одна нашлась: =НАИМЕНЬШИЙ((A1;C1;E1;H1;K1);ЧАСТОТА((A1;C1;E1;H1;K1);0)+1) Здесь небольшая хитрость. ЧАСТОТА((A1;C1;E1;H1;K1);0) - массив из двух значений: количество нулей и положительных чисел Результат работы целой формулы - два наименьших значения >0, в ячейке отображается меньшее. Но такая "хитрость" может боком вылезти при использовании результата для дальнейших вычислений. Полностью корректная (с получением первого значения массива): =НАИМЕНЬШИЙ((A1;C1;E1;H1;K1);ИНДЕКС(ЧАСТОТА((A1;C1;E1;H1;K1);0);1)+1) 69 знаков
Виктор, большая работа проделана! Всем здесь участвующим спасибо! В избушке не стал размещать по причине простоты задачи, вроде как не разбавлять серьезные решения. А вышло вон сколько вариантов, как в избушке ) Буду тестировать.