Как переформулировать формулы Excel слишком много уровней вложенности

мне нужно иметь возможность использовать следующую формулу в Excel, чтобы выбрать формулу, используемую на другом листе, на основе значений в раскрывающихся меню в ячейках D2 и D3. Единственная проблема заключается в том, что формула содержит более 7 вложенных операторов IF, которые, по словам Excel, недопустимы.

указанную формулу нельзя ввести, так как она использует больше уровней вложенности, чем разрешено в текущем формате файла.

Как я могу это сломать формула, чтобы быть в состоянии достичь того же результата?

=IF (D2=1, выпадающие списки!C8, если(и (D2=2,D3="I"),выпадающие списки!C9, если(и (D2=2,D3="II"),выпадающие списки!C10, если (и (D2=2, D3= "IIIa, b"), выпадающие списки!C11, если(и (D2=3,D3="I"),выпадающие списки!C12, если(и (D2=3,D3="II"),выпадающие списки!C13, если(и (D2=3,D3="IIIa"),выпадающие списки!C14, если(и (D2=3,D3="IIIb"),выпадающие списки!C15, если(и (D2=4,D3="I"),выпадающие списки!C16, если(и (D2=4,D3="II"),выпадающие списки!C17, если (и (D2=4, D3= "IIIa, b"), выпадающие списки!С18, "ошибка")))))))

15
задан Excellll
16.05.2023 15:07 Количество просмотров материала 3080
Распечатать страницу

1 ответ

альтернатива многим вложенным IFs

когда вам требуется длинный ряд вложенных IFs, есть другой подход, который не ограничивает вас вложенным IF пределом. Он использует подход "выбора", который также может быть проще создать, потому что он визуально более прост.

вложенные IFs последовательно оценивают условия, пока не найдут истинные. Логика и значения выхода смешанная серия. Альтернативный подход оценивает все условия в один шаг и использует результат, чтобы выбрать правильное значение из списка.

он сочетает в себе два метода, выбрать функцию и логическое выражение. В Excel 2003 можно выбрать до 29 значений. Excel 2007 и более поздние версии позволяют выбрать до 254 элементов без использования инструкций IF.

функция выбора

у вас есть длинная формула, поэтому я не буду воспроизводить все это, но вот подход (заполнитель" индекс рассказано в следующей части):

=CHOOSE(<index>,"Error",Dropdowns!C8,Dropdowns!C9,Dropdowns!C10, ...)

весь ваш список, если значения результатов оператора получает включены. Это работает так: "индекс" вычисляется из всех условий, которые являются частью вложенной цепочки IF. Результатом будет порядковый номер значения в списке выбора.

Индекс

индекс использует Булеву арифметику (вычисления, основанные на 0/1 значениях истинных/ложных условий). Индекс строится как выражение вида это:

1 + condition1 * 1 + condition2 * 2 + condition3 * 3 + ...

начальный 1 будет объяснен через минуту. Остальное - это все ваши условия теста IF в связанном порядке для соответствия списку результатов. Каждый тест имеет значение 1 или 0, которое затем умножается на соответствующий номер индекса (1, 2, 3, ... после каждого условия). Поскольку только один из этих тестов будет истинным, это определяет значение индекса (сумма нулей для всех ложных условий плюс значение индекса для истинного).

подстановка условий теста из вашего вложенного IF примера будет выглядеть так:

1 + (D2=1)*1 + AND(D2=2,D3="I")*2 + AND(D2=2,D3="II")*3 + ...

все выражение заменит <index> заполнитель в Формуле, показанной под заголовком выбрать функцию. Затем функция Choose выбирает целевое значение из списка на основе индекса.

ваше состояние ошибки, если ни один из тестов не верны, который будет давать нулевую сумму. Индекс является номером позиции значения в список, который начинается с 1. При добавлении 1 к расчету индекса (показанному как первый член) условие ошибки оценивается как 1, а все остальные результаты увеличиваются на 1. Поэтому первым результатом в списке будет сообщение об ошибке.

1
отвечен fixer1234 2023-05-17 22:55

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх