![]() |
Как обойти ограничение количества вложенных друг в друга функций ЕСЛИ
Вложений: 1
Доброй ночи.
Помогите составить формулу. Требуется реализовать возвращение значения из заданного условиями столбца в текущей строчке, плюс округлить эти значения. В приложенном документе присутствует диапазон ячеек, заполненными числами. Самостоятельно провёл работу в направлении 2 функций, ЕСЛИ и ПРОСМОТР: ЕСЛИ: на листе Microsoft Office Excel 97-2003, при сохранении формулы появляется оповещение с текстом: "He удается ввести указанную формулу, поскольку она использует больше уровней вложенности, чем допускается текущим форматом файла". На листе, созданном 2007-м Офисом, такой проблемы не наблюдается, но этот не вариант не подходит, т.к. документ будет часто редактироваться на младших версиях программы. Также не работает функция ПРОСМОТР. При попытке вбить в форму массива номера ячеек через знак равенства, появляется сообщение об ошибке в формуле (не говоря о том, что эти значения нужно ещё и округлить). Все, абсолютно все клетки диапазона, будут постоянно содержать значения (простые числа, числа с десятыми, сотыми и т.д. или ошибки #Н/Д, #ССЫЛКА, и т.п.), поэтому функции, типа ГПР, неверное не подойдут. Хотя, в этом я не уверен и обращаюсь к опытным пользователям за помощью. Подскажите, есть ли возможность научить документ делать вычисления без создания дополнительных столбцов для обработки промежуточных данных или укажите иной способ решения задачи. Спасибо. |
|
Вложений: 1
okshef, спасибо.
С функцией СУММПРОИЗВ расчёты производятся отлично. По функции ПРОСМОТР, я не уверен, но смею предположить, что расчёт в некоторых ячейках некорректен ввиду большого количества символов в аргументе: 10S10 и 11S11, вместо 1S1, 2S2, 3S3 и т.д. А по функции СУММ: тут вообще появляется #ЗНАЧ! Возможно дело в присутствии буквы с аргументе, либо это связано с версией программы. |
|
okshef, спасибо. Вы не в первый раз приводите формулы решения задач по расчётам в Excel, с такими составляющими: (E39:$E$40)*(E39:$E$40=E40) и (G10=$K$9:$U$9)*(K10:U10). Поделитесь источником, где черпаете информацию? Хотелось бы самому научиться обрабатывать данные в Excel в таком варианте. А то, что это такое: если бы старые версии программы поддерживали больше 7 функций ЕСЛИ, вложены друг в друга в качестве значений аргументов, моё творение в документе, приложенном к этой теме, выглядело бы так:
Код:
=ЕСЛИ(G10="1S1";ОКРУГЛ(K10;0);ЕСЛИ(G10="2S2";ОКРУГЛ(L10;0);ЕСЛИ(G10="3S3";ОКРУГЛ(M10;0);ЕСЛИ(G10="4S4";ОКРУГЛ(N10;0);ЕСЛИ(G10="5S5";ОКРУГЛ(O10;0);ЕСЛИ(G10="6S6";ОКРУГЛ(P10;0);ЕСЛИ(G10="7S7";ОКРУГЛ(Q10;0);ЕСЛИ(G10="8S8";ОКРУГЛ(R10;0);ЕСЛИ(G10="9S9";ОКРУГЛ(S10;0);ЕСЛИ(G10="10S10";ОКРУГЛ(T10;0);ЕСЛИ(G10="11S11";ОКРУГЛ(U10;0);"ЛОЖЬ"))))))))))) |
Алекс Амолайнен, источников много: сайты и форумы. Могу привести некоторые из моих закладок:
Планета Excel - блог и форум Learn Excel Blog Мир MS Excel Excel - это не сложно! Трюки и приемы работы в Excel и немного экзотики Excel Automation - Ron de Bruin Не могу, к сожалению, похвастаться глубоким изучением всего этого... |
Ну это Вы слукавили. Мне, даже после Ваших подсказок и готовых решений, иногда требуется довольно много времени, чтобы сообразить, как это применить в случае изменения условий. Вот, например, я долго думал как подредактировать формулы, чтобы они продолжали работать при изменении условий задачи и очистить некоторые неинформативные клетки от значений. В этом случае, 2 из 3 приведённых Вами формул, перестают работать, а наиболее подходящей окажется функция ПРОСМОТР (=ОКРУГЛ(ПРОСМОТР(G10;$K$9:$U$9;K10:U10);0)), т.к. она не перемножает в себе массивы, но она также давала ошибки в некоторых клетках. А требовалось-то всего лишь отсортировать заголовки по алфавиту. Видимо, по этой причине Вы и шутнули
Цитата:
okshef, спасибо за ссылки. |
Цитата:
Решение такое (пример): Код:
ЕСЛИ(ЕОШИБКА([ваша формула]);[вычисление или значение в случае ошибки];[вычисление по вашей формуле]) |
Время: 20:33. |
Время: 20:33.
© OSzone.net 2001-