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лв. на продажба”?