Функции If и Switch
Отнася се за: Колони
Dataverse с формули за приложения
за платно Потоци
на работния плот Приложения на компютъра
Power Pages
Power Platform на командването
Определя дали някое условие в набор е вярно (If) или резултатът от формула съответства на всяка стойност в набор (Switch) и след това връща резултат или изпълнява действие.
Описание
Функцията If функция тества едно или повече условия, докато вярно резултат е намерен. Ако се намери такъв резултат, се връща съответната стойност. Ако не се намери такъв резултат, се връща стойност по подразбиране. И в двата случая върнатата стойност може да бъде низ, който да се покаже, формула за оценка или друга форма на резултат.
Функцията Switch оценява формула и определя дали резултатът съвпада с която и да е стойност в последователност, която сте посочили. Ако се намери такъв съвпадение, се връща съответната стойност. Ако не се намери такова съвпадение, се връща стойност по подразбиране. И в двата случая върнатата стойност може да бъде низ, който да се покаже, формула за оценка или друга форма на резултат.
If и Switch са много сходни, но трябва да използвате най-добрата функция за вашата ситуация:
- Използвайте If, за да се оцени едно условие. Най-често срещаният синтаксис за тази функция е If(Condition,ThenResult,DefaultResult ), който предоставя общото "if... тогава... Иначе..." модел, който се среща в други инструменти за програмиране.
- Използвайте If за оценка на множество несвързани условия. В Power Apps (за разлика от Microsoft Excel), можете да зададете множество условия, без да се налага да гнездите If формули.
- Използвайте Switch, за да се оцени едно условие срещу множество възможни съвпадения. Можете също да използвате If в този случай, но ще трябва да повторите формулата за всяко възможно съвпадение.
Можете да използвате и двете функции във формули за поведение, за да разклоните между две или повече действия. Само един клон ще задейства действие. Условията и съвпаденията се оценяват по ред и спират, ако е налице условие вярно или е намерено съвпадение
Празно се връща, ако няма изпълнени условия, не са намерени съвпадения и не сте задали резултат по подразбиране.
Синтаксис
Ако( Условие; ТогаваРезултат [, РезултатПо подразбиране] )
Ако(Условие1,ТогаваРезултат1 [, Условие2,ТогаваРезултат2 , ... [, Резултат по подразбиране] ] )
- Условия - Задължително. Формули за тестване вярно. Такива формули обикновено съдържат сравнение оператори (като <, >, и =) и тестови функции като IsBlank и IsEmpty.
- ТогаваРезултати - Задължително. Съответната стойност, която трябва да се върне за условие, което се оценява на вярно.
- DefaultResult - По избор. Стойността, която трябва да се върне, ако никое условие не се оценява на вярно. Ако не посочите този аргумент, празно се връща.
Switch( Формула; Съвпадение1; Резултат1 [, Съвпадение2; Резултат2, ... [, Резултат по подразбиране] ] )
- Формула - Задължително. Формула за оценка на съвпадения. Тази формула се оценява само веднъж.
- Съвпадения - Задължително. Стойности за сравнение с резултата от Формула. Ако се намери точно съвпадение, съответният резултат се връща.
- Резултати - Задължителни. Съответната стойност за връщане, когато се намери точно съвпадение.
- DefaultResult - По избор. Ако не се намери точно съвпадение, тази стойност се връща. Ако не посочите този аргумент, празно се връща.
Примери
Стойности във формули
В следващите примери: контрола Плъзгач (име Slider1) има стойност от 25.
Формула | Описание | Result |
---|---|---|
if( Slider1.Value = 25, "Result1" ) | Условието е вярно, и съответният резултат се връща. | "Result1" |
if( Slider1.Value = 25, "Result1", "Result2" ) | Условието е вярно, и съответният резултат се връща. | "Result1" |
If( Slider1.Value > 1000, "Result1" ) | Условието е невярно, и не е предоставен DefaultResult. | интервал |
if( Slider1.Value > 1000, "Result1", "Result2" ) | Условието е невярно, предоставен е DefaultResult и е върнат. | "Result2" |
if( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) | Първото условие е вярно, и съответният резултат се връща. Второто условие също е вярно, но не се оценява, защото се появява по-късно в списъка с аргументи, отколкото условие, което се оценява вярно. | "Result1" |
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | Първото условие е невярно, защото плъзгачът не е празен. Второто условие е вярно, защото стойността на плъзгача е число и съответният резултат се връща. | "Result2" |
if( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") | И двете условия са невярно, предоставен е DefaultResult и е върнат. | "Result3" |
Превключвател ( Плъзгач1.Стойност, 25, "Резултат1" ) | Стойността на плъзгача съвпада с първата стойност, която се проверява, и съответният резултат се връща. | "Result1" |
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) | Стойността на плъзгача съвпада с втората стойност, която се проверява, и съответният резултат се връща. | "Result2" |
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | Стойността на плъзгача не съвпада с никоя стойност за проверка. DefaultResult беше предоставен, така че е върнат. | "DefaultResult" |
Разклоняване във формули на поведение
В тези примери контролата Въвеждане на текст с име FirstName има въведена в него стойност „Джон“.
Формула | Описание | Резултат |
---|---|---|
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | Условието е вярно, така че Navigate функцията работи. Можете да използвате IsBlank функция за тестване дали е попълнено задължително поле за формуляр. Ако FirstName беше blank, тази формула няма да има ефект. | верен Дисплеят е променен на Screen1. |
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Без оператора !състоянието в false, така че функцията Navigate не се изпълнява. Функцията Back беше предоставена като DefaultResult, така че тече. | верен Дисплеят се връща към предишния екран. |
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) | Стойността на FirstName.Text се сравнява с "Карлос", "Кристин" и "Джон" в този ред. Намерено е съвпадение с „Джон“, така че приложението навигира към Screen3. | верен Дисплеят е променен на Screen3. |
Стъпка по стъпка
Добавете Въвеждане на текст контрола и я назовете Text1, ако няма това име по подразбиране.
В Текст1, въведете 30.
Добавете контрола Label с име Текст и задайте свойството й на тази формула:
If( Value(Text1.Text) < 20, "Поръчай МНОГО повече!", Value(Text1.Text) < 40, "Поръчай повече!", Text1.Text )Контролата Етикет показва Поръчайте повече! защото стойността на Текст1 е повече от 20, но по-малко от 40.
В Текст1, въведете 15.
Контролата Етикет показва Поръчайте МНОГО повече! защото стойността на Текст1 е повече от 20.
В Текст1, въведете 50.
Контролата етикет показва стойността, която сте въвели, защото е повече от 40.