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.