7. Условни изрази
1. Същност - в практиката по-често се случва да не може да се определи еднозначно зависимостта между две или повече клетки. Примерно: Дистрибутори разпространяват печатни издания. Ако пласират до 10 бр. включително, получават по 3 лв. на брой., а ако бройките са над 10, сумата за дистрибутор е по 5 лв. на продадено издание.
В този случай не може да се зададе твърда зависимост от рода на 3*бр.(т.е. адреса на клетката, съдържаща броя) или 5*бр.(аналогично с адреса), защото с кое число ще умножим, зависи от интервала, в който е броят продадени издания – под 10 включително или над 10. Точно в такива случаи се налага да бъдат използвани т.нар. условни изрази. Там указваме при какво условие се прилага едната формула и при какво – другата. Изказано с думи, ако бройките са под 10 включително, клетката трябва да съдържа стойността 3*бр., а иначе (т.е. повече от 10 бройки) – 5*бр.
Формулата, написана на Excel, има следният вид:
=if(условие, при вярно условие, при невярно условие)
Този условен оператор се въвежда като съдържание на клетката , а според стойността на клетката, съдържаща бройките, системата ще прецени кой от двата варианта на изчисление да приложи и да пресметне резултата. Ако бройките се сменят и попаднат в другия интервал (да речем са били 5, а после стават 11), Excel прилага веднага другото правило за изчисление. Това освобождава потребителя от задължението да следи промените и да сменя всеки път формулата за изчисление ръчно, което в една огромна таблица би било почти непосилна задача.
A B C
1 |
Дистрибутор |
Брой продажби |
Сума за получаване |
2 |
Дистрибутор 1 |
12 |
=if(B2<=10,3*B2,5*B2) |
3 |
Дистрибутор 2 |
7 |
=if(B3<=10,3*B3,5*B3) |
4 |
Дистрибутор 3 |
10 |
=if(B4<=10,3*B4,5*B4) |
5 |
Дистрибутор 4 |
4 |
=if(B5<=10,3*B5,5*B5) |
6 |
Дистрибутор 5 |
8 |
=if(B6<=10,3*B6,5*B6) |
Тъй като изчисленията за всеки дистрибутор са аналогични, достатъчно е да съставим първата формула (тази в С2) и после да я копираме. Тъй като се използва относително адресиране, формулата автоматично ще се пренастрои към правилните за всеки ред изчисления.
В случая с червен цвят е отбелязано условието, което се проверява, за да се провери кой вариант на изчисление да се приложи. Със синьо е формулата, която се прилага, ако условието е вярно. Със зелено – тази, която ще даде резултат при отговор “не” на условието (т.е. броят е над 10, защото не е вярно, че е по-малко или точно 10).
При ползване на условни изрази е важно да знаем кой е използваният в таблицата ни десетичен знак – точка или запетая. Това е така, защото:
2. Многовариантност – ако условието е по-сложно, т.е. вариантите за изчисление са повече от 2, използваме т.нар. вложени условни изрази. Ще разгледаме случай с 3 възможности.
Примерно: Дистрибутори разпространяват печатни издания. Ако пласират до 10бр. включително, получават по 3 лв. на брой., а ако бройките са между 10 и 20, сумата за дистрибутор е по 5 лв. на продадено издание. В случай над 20бр., те ще вземат по 7 лв. на брой.
A B C
1 |
Дистрибутор |
Брой продажби |
Сума за получаване |
2 |
Дистрибутор 1 |
12 |
=if(B2<=10, 3*B2,if(B2<=20, 5*B2,7*B2)) |
3 |
Дистрибутор 2 |
7 |
=if(B3<=10, 3*B3,if(B3<=20, 5*B3,7*B3)) |
4 |
Дистрибутор 3 |
10 |
=if(B4<=10, 3*B4,if(B4<=20, 5*B4,7*B4)) |
5 |
Дистрибутор 4 |
4 |
=if(B5<=10, 3*B5,if(B5<=20, 5*B5,7*B5)) |
6 |
Дистрибутор 5 |
8 |
=if(B6<=10, 3*B6,if(B6<=20, 5*B6,7*B6)) |
Да разтълкуваме условния израз. Ако броят е под 10 включително, умножаваме го по 3, ако обаче това не е вярно, следва, че броят е над 10. Тогава трябва да проверим само дали е под 20 включително с което да осигурим, че продадените бройки попадат в интервала 10-20 вкл. Ако това второ условие дава отговор “истина”, значи ще умножаваме по 5, но ако и то не е вярно, следователно попадаме на варианта повече от 20 бр. и тогава трябва да изчисляваме по третата формула. Целият вложен (вътрешният) условен оператор играе ролята на аргумент за външния. Ако има 4 варианта, ще се наложи влагането на още един условен оператор и т.н. При N възможности, броят на използваните if – функции е (N-1).
Отговорете на следните въпроси:
1.В кои случаи се налага ползването на условен оператор?
2.При 5 възможности за изчисление, колко вложени if – оператора трябва да използваме?
3.Как ще изглежда условието на същата задача, допълнено с варианта “а ако бройките са над 30, дистрибуторите получават по 9лв. на продажба”?