ОК. Итак, я открываю бизнес, который продает 7 различных планов в зависимости от доступности и обстоятельств.
Я хочу ввести информацию о клиенте в электронную таблицу Excel и электронную таблицу, чтобы сообщить мне План.
Однако основные уравнения IF не работают.
Так, например, Если Клиент имеет кредитный рейтинг более 550, 0 просроченных платежей, хочет получить покрытие более 20000 фунтов стерлингов, но равно 25000 фунтов стерлингов или меньше и имеет 2 или менее страховых полисов, то = план 7.
=IF(AND(A1>550,B1>0,C1>20000,C1<=25000,D1<=2),"7")
(с этим битом все в порядке, поскольку он сообщает мне «ПЛАН 7»).
Тем не мение.
Если у Клиента есть кредитный рейтинг менее 550, но более 500, 0 просроченных платежей, требуется страховое покрытие на сумму более 15000 фунтов стерлингов, но не более 20000 фунтов стерлингов и у него 2 или менее страховых полисов, тогда = План 6.
Это уравнение просто возвращает "ЛОЖЬ", если я помещаю эти совпадающие переменные в соответствующие ячейки: как в:
=IF(AND(A1>550,B1>0,C1>20000,C1<=25000,D1<=2)"7",IF(AND(A1>500,A1<550,B1>0,C1>15000,C1<=20000,D1<=2),"6"))
= FALSE
(если информация в электронной таблице должна возвращать ПЛАН 6), но продолжает выдавать мне ПЛАН 7, если информация в электронной таблице должна возвращать ПЛАН 7.
Я, очевидно, хочу продолжить это с 5 другими параметрами до «ПЛАНА 1».
Что я делаю неправильно?
Огромное спасибо. В конце концов.
Спасибо друг. Я допустил ошибку. Он должен сказать IF (A1> 500, IF (A1 <550. Извините. Есть идеи?)
Прочтите еще раз: IF(A1>500,IF(A1<500
Вы оба раза используете 500. Он не может быть ниже 500 и выше 500 одновременно.
Ага сделал ошибку. Только что поправил. Простите. Любые идеи?
Сложно сказать. If
принимает три параметра. Последнее, что делать, если условие - false
. Если ничего не задано, просто возвращается «ложь». Так что мы действительно не знаем, где это терпит неудачу. Вы могли бы дать ему отчет, чтобы вы могли диагностировать. Для этого последнего большого блока IF (IF (IF (...) вы можете дать ему отчет: IF(A1>500,IF(A1<550,IF(B1>0,IF(C1>15000,IF(C1<=20000,IF(D1<=2,"6", "failed d1 condition"),"failed c1<=20000 condition"),"failed c1>15000 condition"),"Failed a1<550 condition"), "Failed a1>500 condition")
Формула, которую вы здесь ввели, даже не будет работать, так как в ней отсутствует куча скобок, так что, может быть, есть еще что-то, что мы не видим, что является отключенным, что вызывает это?
Во всяком случае, я бы переписал на AND()
, чтобы было легче разбираться в том, что здесь происходит. Это очень поможет, если вы добавите планы и этой мерзавцу.
Привет, JNevill. Я не понял сообщения «диагностировать». Не из-за вашей неспособности объяснить, а из-за того, что мой уровень компьютерных фанатов Excel выше среднего, но все же невысокий. Тем не мение. Сейчас я отредактирую его с правильными скобками. Чтобы посмотреть, сможете ли вы его запустить. Отличный совет повторно "И". Спасибо
Вместо того, чтобы иметь длинный сложный оператор IF с жестко запрограммированными значениями, я настоятельно рекомендую создать таблицу подстановки, что-то вроде этого (вы можете продолжать расширять ее, пока все критерии вашего плана не будут охвачены для всех номеров ваших планов):
А затем представим, что ваша таблица клиентов выглядит так:
Затем используйте формулу СУММЕСЛИМН, чтобы получить номер плана, который вы ищете (важно отметить, что мы можем использовать только СУММЕСЛИМН, потому что мы возвращаем число, а не текст). Используя данные из этого примера, поместите эту формулу в ячейку F2 и скопируйте:
=SUMIFS(P:P,H:H,"< = "&B2,I:I,"> = "&B2,J:J,"< = "&C2,K:K,"> = "&C2,L:L,"< = "&D2,M:M,"> = "&D2,N:N,"< = "&E2,O:O,"> = "&E2)
Это даст нам правильный план № на основе данных клиента:
Это упростит поддержку и обновление критериев вашего плана, вместо того, чтобы жестко запрограммировать его в формуле, и упростит дальнейшее обслуживание и сделает его более понятным.
Это восхитительно. Большое спасибо за время, которое вы уделили. Проблема в том, что я буду принимать это решение, когда буду разговаривать с отдельным клиентом по телефону, прежде чем сообщать ему, что мы можем предложить. В настоящее время я задаю параметры для планирования вручную, но хочу несколько автоматизировать процесс принятия решений для каждого отдельного клиента. Я ценю ваш совет как общее примечание и добавил его в закладки для справки, когда он станет уместным. Но мне это на самом деле не помогает. Или я вас неправильно прочитал?
Могу ли я сделать это для одного клиента? Я не вижу решений в уравнении, поэтому меня это немного смущает.
Формула в ячейке F2 смотрит на отдельного клиента, в примере Customer1, и сравнивает ячейки B2, C2, D2 и E2 для этого клиента с таблицей критериев плана. Если вы посмотрите на формулу в F3, эти ссылки будут B3, C3, D3 и E3 для Customer2.
Таким образом, вы должны просто настроить значения в B2, C2, D2 и E2, если вы просто хотите выполнить поиск для одного клиента.
Это потрясающе информативно. Если мне придется так поступить, потому что другого пути нет, то пусть так и будет. По-прежнему фантастический инструмент и совет. Однако есть ли какой-либо способ достичь того, чего я хочу достичь, с помощью IF (И? Я бы предпочел не использовать «рабочую таблицу», если есть какой-либо способ избежать этого.
Вам нужно будет жестко закодировать параметры в формуле IF (AND, учитывая только эти два номера плана, это будет выглядеть так: =IF(AND(B2>550,B2<=850,C2=0,D2>20000,D2<=25000,E2>=0,E2<=2),7,IF(AND(B2>500,B2<=550,C2=0,D2>15000,D2<=20000,E2>=0,E2<=2),6,"no plan defined"))
Большое спасибо. Ваша идея более эффективна, поскольку планы будут постоянно меняться с течением времени в зависимости от постоянно меняющейся оценки риска, аппетита и т. д. Я думаю, мне нужно решить, как это включить. Переходя к вашему окончательному ответу, является ли отсутствие «плана определено» в уравнении IFAND, что является причиной появления результата «FALSE»?
Не должно быть никакой возможности, что результатом формулы будет ЛОЖЬ. Все ложные возможности учтены в приведенной формуле. Если вы его изменили, укажите измененную формулу для устранения неполадок.
Это можно упростить с помощью
And()
:IF(AND(A1>550,B1>0,C1>20000,C1<=25000,D1<=2), 7, IF(AND(....), "6", "Something else"))
Причина, по которой ваш не работает, заключается в том, что у вас естьIF(A1>500,IF(A1<500
. Он не может одновременно быть больше 500 и меньше 500.