2016-09-09 2 views
0

У меня довольно большой документ excel, который имеет большое количество vlookups, если функции и т. Д. На некоторых моих вкладках я не могу заставить свои функции IF работать, и я проверил свою логику 10 раз. Я не могу понять, почему excel останавливается в определенном состоянии и не проверяет остальную часть моих гнезд. Вот что выборка данных выглядитВложенные функции IF в Excel не работают

 AE   AI   AL   AM   AN 
DateResolved DateCreated Response Time Dummy Response Time Bucket 
    1/7/2016 1/1/2016  6    -   0-7 
    1/18/2016 1/3/2016  15    -   15-30 
    1/25/2016 1/4/2016  21    -   15-30 
    1/25/2016 1/4/2016  21    -   15-30 
    1/25/2016 12/31/2015 25    -   15-30 
    NULL  1/4/2016  Outstanding >30 1   >30 
    NULL  1/4/2016  Outstanding >30 1   >30 
    1/26/2016 1/4/2016  22    -   15-30 
    NULL  1/4/2016  Outstanding >30 1   >30 

Я принимаю DateResolved - (МИНУС) DateCreated, чтобы получить время отклика. Это время отклика имеет эту вложенную функцию ПЧ:

=IF(AE2="NULL",IF(MAX(AI:AI)-AI2>30,"Outstanding >30","Outstanding <30"),AE2-AI2) 

Это замечательно, потому что это то, что я хотел. Выдающееся значение> 30 дней отображается в столбце AL (максимальная дата в DATE CREATED - это когда-то в июле, но она усекается, поэтому оператор IF выполняется, когда DateResolved = NULL, max DateCreated - DateCreated> 30, Response Time возвращается как " Выдающаяся> 30" .

проблема заключается в колонке AN - Response Time Bucket Вот формула:

=IF(AL2<=7,"0-7",IF(AL2<=14,"8-14",IF(AL2<=30,"15-30",IF(AL2>30, ">30",IF(AL2="Outstanding >30",AL2," Outstanding <30"))))) 

Я просто просто хочу, чтобы вернуться. "Выдающиеся> 30", когда ШС «Outstanding> 30 «и вернуть« Отлично »< 30« когда AL «Отлично» < 30 ». Формула, кажется, останавливается ПОСЛЕ четвертого гнезда и выдает мои« замечательные »времена отклика в«> 30 », чего я НЕ хочу.

Я пробовал это много разных способов. Сначала я заменил AL2 в последнем гнезде «Отлично» 30 ». Я также попытался создать макет в столбце AM, где формула = if (AL2 = «Выдающаяся> 30», 1,0), а затем подставляя ее в столбец AN. Я установил свое последнее гнездо как IF (AM2 = 1, «Выдающийся» 30 »,« Выдающийся < 30 »). Это все еще не сработало. Он все время уходит после 4-го гнезда и говорит «> 30». Я даже попытался вывести цифры и заменить «Отлично» 30 »в столбце AL с помощью OST и заменить« OST »на мою формулу, чтобы excel не ошибочно читал последний бит« Отлично »30.

UPDATE: Я отредактировал формулу, чтобы включить «> 30» в качестве последнего фрагмента моей формулы, то есть это то, что появляется, если условие FALSE. Я не уверен, почему это сработало, но это так. Вот он:

=IF(O2<=7,"0-7",IF(O2<=14,"8-14",IF(O2<=30,"15-30",IF(O2="Outstanding >30","Outstanding >30",IF(O2="Outstanding <30","Outstanding <30",">30")))))` 

Кто-нибудь знает почему?

ответ

0

Причина это происходит в том, что

"Outstanding >30">30 

оценивает в TRUE.

По какой-то причине, кажется, что Excel сравнивает текст как большее, чем любое числовое значение при выполнении такого сравнения.

0

реорганизовать вашу формулу:

=IF(ISNUMBER(AL2),IF(AL2<=7,"0-7",IF(AL2<=14,"8-14",IF(AL2<=30,"15-30",">30"))),AL2) 

enter image description here

0

Это важно понять, как Excel обрабатывает текст (включая текст, который содержит номера). Когда вы сравниваете значение «Выдающийся» 30 »с любым числом,« Выдающиеся> 30 »всегда будут выше. Иными словами:

="Outstanding >30" > 999999 

будет выдавать TRUE.

Существует несколько способов изменения формулы для работы. Я предлагаю вам проверить, если AL2 = «Выдающиеся> 30» и «Выдающиеся < 30» в начале вашей формулы, прежде чем проверять количество дней.

Вот передел вашей формулы. Обратите внимание на использование функции OR.

=IF(OR(AL2="Outstanding >30", AL2="Outstanding <30"), AL2, IF(AL2<=7,"0-7",IF(AL2<=14,"8-14",IF(AL2<=30,"15-30",IF(AL2>30, ">30",IF(AL2="Outstanding >30",AL2," Outstanding <30")))))) 

Кроме того, вы намерены включить пробел в конце формулы?

..." Outstanding <30" 

Наконец, вы можете подумать о добавлении столбца, который вычисляет время отклика, используя только цифры (без текста). Даже если вы сохраняете столбец с текстом, вы можете использовать базовый номер для вычисления этого текста. Кроме того, ваша формула может использовать функцию TODAY() в качестве разрешенной даты, где значение равно NULL, если

Смежные вопросы