Excel If формула


0

Я намагаюся запустити просту формулу в Excel:

=IF(V3>419, "Pass", IF(V3>459, "Merit", IF(V3>499, "Dist", IF(V3>519, "Dist*","Fail"))))

У мене 2 колонки; Загальний і класний

Overall     Grade
70          Fail
220         Fail
420         Pass

Має бути простіший спосіб?


Отже, ви просите спосіб це зробити без такої кількості заяв?
CLockeWork

можливо, або просто виправити це так, щоб воно працювало ... я пропускаю кому чи десь ""?
Bgrewal

це, здається, працює на пропуск в даний час?
Bgrewal

Можливо, хочете додати трохи деталей у ваше запитання, не було зрозуміло, що ви запитуєте.
CLockeWork

Відповіді:


2

Отже, виходячи з ваших коментарів, ви хочете дізнатися, чому ця формула не працює, а потім, по-друге, чи можна її упорядкувати?

Це не працює, тому що все, що зараховується як заслуга, розлад або дистрибуція *, перевищує 419, і тому вважається пропуском.

Ваша формула оцінюється зліва направо, тому перед тим, як робити щось інше, вона перевіряє, чи бал вище 419. Навіть якщо оцінка на 800, це вище 419, і тому перший тест - ПРАВИЛЬНИЙ. Excel не вважає, що це потрібно продовжувати, тому він зупиняється там, називаючи його Pass.

Якщо ви виділите клітинку зі своєю формулою у ній та перейдіть на вкладку Формули та виберіть Оцінити формулу в розділі Аудит формул, ви можете переглядати формулу, щоб побачити, що саме відбувається.


Є два способи виправити це. Один із способів - замінити поточний statemtns на оператор AND

AND(V3>419,V3<459)

Але це незграбно. Вам краще просто скасувати твердження:

=IF(V3>519,"Dist*",IF(V3>499,"Dist",IF(V3>459,"Merit",IF(V3>419,"Pass","Fail"))))


Таким чином, якщо він недостатньо високий для Dist *, він перевірить наступний найвищий рівень тощо.


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


Для другої частини я б особисто запропонував використовувати таблицю зі значеннями та відповідними результатами, а VLOOKUP.
Джеррі

Це досить хороший шлях; хоча це би ускладнило формулу, що суперечить питання, було б більш безпечним для майбутнього, оскільки ви могли б коригувати цілі в таблиці, а не коригувати формулу.
CLockeWork

1

Ви працюєте назад, спочатку вам потрібен найвищий бал, інакше 1000 перейде на перший ifза "пропуск", а не зробить його на "dist *". Подобається це:

=IF(V3>519,"Dist*",IF(V3>499,"Dist",IF(V3>459,"Merit",IF(V3>419,"Pass","Fail"))))

В іншому випадку вам потрібно вкласти свої ifзначення між значеннями, які є набагато менш чистими, наприклад=if(419<v3<459,"pass",...


Ах, побий мене до цього! : D
CLockeWork
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.