Я получаю сообщение «Вы ввели слишком много аргументов для этой функции» в Excel

Я получаю сообщение «Вы ввели слишком много аргументов для этой функции» в Excel

У меня есть таблица, в которую пользователь добавляет химическую формулу, добавляя элементы по одному (таблица имеет 5 строк), и я пытаюсь вычислить степень ненасыщенности двумя способами. Пользователь должен указать способ, записав 1 или 2 в ячейку, а затем есть этот оператор if: =IF(N16=1,((2*IF(ISBLANK(C8),0,(C8*(D8-2)))-(IF(ISBLANK(C9),0,(C9*(D9-2))-IF(ISBLANK(C11),0,(C11*(D11-2))+IF(ISBLANK(C12),0,(C12*(D12-2)))/2),(2+(IF(ISBLANK(C8),0,(C8*(D8-2))+IF(ISBLANK(C9),0,(C9*(D9-2))+IF(ISBLANK(C11),0,(C11*(D11-2))+IF(ISBLANK(C12),0,(C12*(D12-2))))))))) Эти ISBLANKs нужны для проверки, есть ли элемент, записанный в ячейке или нет

решение1

Ну, глядя только на эту формулу, трудно понять смысл ваших действий.

ЕСЛИесли это по сути ваш план, за исключением отчетов об ошибках Excel, то в вашей формуле есть следующая концепция:

ЕСЛИ некоторое условие (в данном случае N16=1) ИСТИНА, то сообщите ЭТО (что бы это ни было), а если оно НЕ ИСТИНА, сообщите ЭТО (что бы это ни было) В ЛЮБОМ СЛУЧАЕ.

Это сводится к следующему:

=IF(A1=1,50,50)

Суть в том, что если вы получаете одинаковые результаты для ИСТИНА и ЛОЖЬ, то нет смысла в IF(). Обратите внимание, что могут быть причины, внешние по отношению к логике ситуации, и, кто знает, одна из них может быть применима. Поскольку вы не даете никакой значимой информации для решения ЭТОГО, никто не может сказать. Но если никто не дает, а это кажется весьма вероятным, зачем IF()вообще использовать ?

Так что здесь важен только результат ИСТИНА или ЛОЖЬ (поскольку они одинаковы). Вы можете упростить формулу, просто используя одну из этих частей формулы.

Это если вы хотите "упростить". Если вы предпочитаетеЗНАЧИТЕЛЬНО упроститьэто, затем рассмотрите, что делает каждый тест. Ваш основной результат в каждом тесте — вычесть 2 из какой-то ячейки, а затем умножить это на тестовую ячейку. Круто. Если эта тестовая ячейка пустая, Excel посчитает ее равной 0, и это умножение даст вам 0. Так зачем же беспокоиться о проверке, является ли она пустой, если причина сделать это — сделать результат 0?Для этого вам понадобится только само умножение, больше ничего не понадобится.Если отбросить лишнюю работу и всю IF()идею, то получится следующее:

=(2  *  C8*(D8-2)  -  C9*(D9-2)  -  C11*(D11-2)  +  C12*(D12-2)  )  /2

и поскольку, похоже, нет смысла умножать это на 2, то разделим на 2 и вычтем это:

=C8*(D8-2)  -  C9*(D9-2)  -  C11*(D11-2)  +  C12*(D12-2)

Я буду считать, что ожидаемого «C10*(D10-2)» нет по уважительным причинам, и пойду дальше.

Прекращая упрощение на этом этапе (поскольку в любом случае, технически говоря, в данном случае все, что больше, будет скорее «оптимизацией», чем «упрощением»), я хотел бы указать на одно огромное преимущество использования приведенной выше, а не вашей формулы:

Это так просто и легко набрать или сгенерировать, что глупые ошибки ввода должны быть трудно допустить, и их должно быть чрезвычайно легко вычислить, если они произойдут. Сравните это с вашей формулой, и преимущество должно быть легко увидеть.

Именно это, а не конкретные приемы торговли, описанные выше, является важной частью этого ответа.

Связанный контент