Множественные функции ЕСЛИ с множеством возможных решений

ОК. Итак, я открываю бизнес, который продает 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».

Что я делаю неправильно?

Огромное спасибо. В конце концов.

Это можно упростить с помощью 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.

JNevill 01.05.2018 20:06

Спасибо друг. Я допустил ошибку. Он должен сказать IF (A1> 500, IF (A1 <550. Извините. Есть идеи?)

Apackman 01.05.2018 20:08

Прочтите еще раз: IF(A1>500,IF(A1<500 Вы оба раза используете 500. Он не может быть ниже 500 и выше 500 одновременно.

JNevill 01.05.2018 20:09

Ага сделал ошибку. Только что поправил. Простите. Любые идеи?

Apackman 01.05.2018 20:10

Сложно сказать. 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")

JNevill 01.05.2018 20:14

Формула, которую вы здесь ввели, даже не будет работать, так как в ней отсутствует куча скобок, так что, может быть, есть еще что-то, что мы не видим, что является отключенным, что вызывает это?

JNevill 01.05.2018 20:15

Во всяком случае, я бы переписал на AND(), чтобы было легче разбираться в том, что здесь происходит. Это очень поможет, если вы добавите планы и этой мерзавцу.

JNevill 01.05.2018 20:15

Привет, JNevill. Я не понял сообщения «диагностировать». Не из-за вашей неспособности объяснить, а из-за того, что мой уровень компьютерных фанатов Excel выше среднего, но все же невысокий. Тем не мение. Сейчас я отредактирую его с правильными скобками. Чтобы посмотреть, сможете ли вы его запустить. Отличный совет повторно "И". Спасибо

Apackman 01.05.2018 20:18
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
8
50
1

Ответы 1

Вместо того, чтобы иметь длинный сложный оператор IF с жестко запрограммированными значениями, я настоятельно рекомендую создать таблицу подстановки, что-то вроде этого (вы можете продолжать расширять ее, пока все критерии вашего плана не будут охвачены для всех номеров ваших планов):

Plan Criteria screenshot

А затем представим, что ваша таблица клиентов выглядит так:

Customer data screenshot

Затем используйте формулу СУММЕСЛИМН, чтобы получить номер плана, который вы ищете (важно отметить, что мы можем использовать только СУММЕСЛИМН, потому что мы возвращаем число, а не текст). Используя данные из этого примера, поместите эту формулу в ячейку 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)

Это даст нам правильный план № на основе данных клиента:

results

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

Это восхитительно. Большое спасибо за время, которое вы уделили. Проблема в том, что я буду принимать это решение, когда буду разговаривать с отдельным клиентом по телефону, прежде чем сообщать ему, что мы можем предложить. В настоящее время я задаю параметры для планирования вручную, но хочу несколько автоматизировать процесс принятия решений для каждого отдельного клиента. Я ценю ваш совет как общее примечание и добавил его в закладки для справки, когда он станет уместным. Но мне это на самом деле не помогает. Или я вас неправильно прочитал?

Apackman 01.05.2018 20:39

Могу ли я сделать это для одного клиента? Я не вижу решений в уравнении, поэтому меня это немного смущает.

Apackman 01.05.2018 20:50

Формула в ячейке F2 смотрит на отдельного клиента, в примере Customer1, и сравнивает ячейки B2, C2, D2 и E2 для этого клиента с таблицей критериев плана. Если вы посмотрите на формулу в F3, эти ссылки будут B3, C3, D3 и E3 для Customer2.

tigeravatar 01.05.2018 20:55

Таким образом, вы должны просто настроить значения в B2, C2, D2 и E2, если вы просто хотите выполнить поиск для одного клиента.

tigeravatar 01.05.2018 20:57

Это потрясающе информативно. Если мне придется так поступить, потому что другого пути нет, то пусть так и будет. По-прежнему фантастический инструмент и совет. Однако есть ли какой-либо способ достичь того, чего я хочу достичь, с помощью IF (И? Я бы предпочел не использовать «рабочую таблицу», если есть какой-либо способ избежать этого.

Apackman 01.05.2018 21:03

Вам нужно будет жестко закодировать параметры в формуле 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"))

tigeravatar 01.05.2018 21:09

Большое спасибо. Ваша идея более эффективна, поскольку планы будут постоянно меняться с течением времени в зависимости от постоянно меняющейся оценки риска, аппетита и т. д. Я думаю, мне нужно решить, как это включить. Переходя к вашему окончательному ответу, является ли отсутствие «плана определено» в уравнении IFAND, что является причиной появления результата «FALSE»?

Apackman 01.05.2018 21:11

Не должно быть никакой возможности, что результатом формулы будет ЛОЖЬ. Все ложные возможности учтены в приведенной формуле. Если вы его изменили, укажите измененную формулу для устранения неполадок.

tigeravatar 01.05.2018 21:13

Другие вопросы по теме