PowerApps의 If 및 Switch 함수If and Switch functions in PowerApps

집합의 조건이 참 인지(If) 또는 수식의 결과가 집합의 값과 일치하는지(Switch) 확인한 다음 결과를 반환하거나 작업을 실행합니다.Determines whether any condition in a set is true (If) or the result of a formula matches any value in a set (Switch) and then returns a result or executes an action.

설명Description

If 함수는 true 결과를 찾을 때까지 하나 이상의 조건을 테스트합니다.The If function tests one or more conditions until a true result is found. 그러한 결과를 찾으면 해당 값이 반환됩니다.If such a result is found, a corresponding value is returned. 그러한 결과가 없으면 기본값이 반환됩니다.If no such result is found, a default value is returned. 두 경우 모두, 표시할 문자열, 평가할 수식 또는 다른 양식의 결과가 반환 값이 될 수 있습니다.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

Switch 함수는 수식을 평가하고 그 결과가 사용자가 지정한 시퀀스의 값과 일치하는지 확인합니다.The Switch function evaluates a formula and determines whether the result matches any value in a sequence that you specify. 일치하는 항목을 찾으면 해당 값이 반환됩니다.If a match is found, a corresponding value is returned. 일치하는 항목이 없으면 기본값이 반환됩니다.If no match is found, a default value is returned. 두 경우 모두, 표시할 문자열, 평가할 수식 또는 다른 양식의 결과가 반환 값이 될 수 있습니다.In either case, the returned value might be a string to show, a formula to evaluate, or another form of result.

IfSwitch는 매우 유사하지만 상황에 가장 적합한 함수를 사용해야 합니다.If and Switch are very similar, but you should use the best function for your situation:

  • 단일 조건을 평가하려면 If를 사용합니다.Use If to evaluate a single condition. 이 함수의 가장 일반적인 구문은 If( Condition, ThenResult, DefaultResult )이며, 다른 프로그래밍 도구에서 볼 수 있는 일반적인 “if …The most common syntax for this function is If( Condition, ThenResult, DefaultResult ), which provides the common “if … then …then … else …”else …” 패턴을 제공합니다.pattern seen in other programming tools.
  • 관련이 없는 여러 조건을 평가하려면 If를 사용합니다.Use If to evaluate multiple unrelated conditions. Microsoft Excel과 달리 PowerApps에서는 If 수식을 중첩하지 않고 여러 조건을 지정할 수 있습니다.In PowerApps (unlike Microsoft Excel), you can specify multiple conditions without having to nest If formulas.
  • 다수의 가능한 일치 항목에 대해 단일 조건을 평가하려면 Switch를 사용합니다.Use Switch to evaluate a single condition against multiple possible matches. 이 경우 If를 사용할 수도 있지만 가능한 일치 항목마다 수식을 반복해야 합니다.You can also use If in this case, but you'd need to repeat the formula for each possible match.

두 가지 이상의 작업을 분기하기 위해 동작 수식에 이 두 가지 함수를 모두 사용할 수 있습니다.You can use both of these functions in behavior formulas to branch between two or more actions. 하나의 분기만 작업을 트리거합니다.Only one branch will trigger an action. 조건과 일치는 순서대로 평가되고 조건이 true이거나 일치가 발견되면 중지됩니다.Conditions and matches are evaluated in order, and they stop if a condition is true or a match is found.

true인 조건이 없고 일치하는 항목이 없고 기본 결과를 지정하지 않으면 공백이 반환됩니다.Blank is returned if no conditions are true, no matches are found, and you don't specify a default result.

구문Syntax

If( Condition, ThenResult [, DefaultResult ] )If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Condition(s) - 필수 항목입니다.Condition(s) - Required. true가 있는지 테스트할 수식입니다.Formula(s) to test for true. 이러한 수식에는 일반적으로 비교 연산자(예: <, >=)와 IsBlankIsEmpty와 같은 테스트 함수가 포함됩니다.Such formulas commonly contain comparison operators (such as <, >, and =) and test functions such as IsBlank and IsEmpty.
  • ThenResult(s) - 필수 항목입니다.ThenResult(s) - Required. true로 평가되는 조건에 대해 반환할 해당 값입니다.The corresponding value to return for a condition that evaluates to true.
  • DefaultResult - 선택 항목입니다.DefaultResult - Optional. true로 평가되는 조건이 없는 경우 반환할 값입니다.The value to return if no condition evaluates to true. 이 인수를 지정하지 않으면 공백이 반환됩니다.If you don't specify this argument, blank is returned.

Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formula - 필수 항목입니다.Formula - Required. 일치 항목이 있는지 평가할 수식입니다.Formula to evaluate for matches. 이 수식은 한 번만 평가됩니다.This formula is evaluated only once.
  • Match(s) - 필수 항목입니다.Match(s) - Required. Formula의 결과와 비교할 값입니다.Values to compare with the result from Formula. 정확히 일치하는 항목이 발견되면 해당하는 Result가 반환됩니다.If an exact match is found, the corresponding Result is returned.
  • Result(s) - 필수 항목입니다.Result(s) - Required. 정확히 일치하는 항목이 발견되면 반환할 해당 값입니다.The corresponding value to return when an exact match is found.
  • DefaultResult - 선택 항목입니다.DefaultResult - Optional. 정확히 일치하는 항목이 없으면 이 값이 반환됩니다.If an exact match isn't found, this value is returned. 이 인수를 지정하지 않으면 공백이 반환됩니다.If you don't specify this argument, blank is returned.

Examples

수식의 값Values in formulas

다음 예제에서 Slider1이라는 Slider 컨트롤의 값은 25입니다.In the following examples, a Slider control (named Slider1) has a value of 25.

수식Formula 설명Description 결과Result
If( Slider1.Value = 25, "Result1" )If( Slider1.Value = 25, "Result1" ) 조건은 true이고 해당 결과가 반환됩니다.The condition is true, and the corresponding result is returned. "Result1""Result1"
If( Slider1.Value = 25, "Result1", "Result2" )If( Slider1.Value = 25, "Result1", "Result2" ) 조건은 true이고 해당 결과가 반환됩니다.The condition is true, and the corresponding result is returned. "Result1""Result1"
If( Slider1.Value > 1000, "Result1" )If( Slider1.Value > 1000, "Result1" ) 조건은 false이고 DefaultResult가 제공되지 않았습니다.The condition is false, and no DefaultResult was provided. 공백blank
If( Slider1.Value > 1000, "Result1", "Result2" )If( Slider1.Value > 1000, "Result1", "Result2" ) 조건은 false이고 DefaultResult가 제공되었고 반환됩니다.The condition is false, a DefaultResult was provided, and it's returned. "Result2""Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" )If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) 첫 번째 조건은 true이고 해당 결과가 반환됩니다.The first condition is true, and the corresponding result is returned. 두 번째 조건도 true이지만, 인수 목록에서 true로 평가되는 조건보다 뒷부분에 표시되기 때문에 평가되지 않습니다.The second condition is also true, but it isn't evaluated because it appears later in the argument list than a condition that evaluates to true. "Result1""Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" )If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) 슬라이더가 공백이 아니어서 첫 번째 조건은 false입니다.The first condition is false because the slider isn't blank. 슬라이더의 값이 숫자이고 해당 결과가 반환되기 때문에 두 번째 조건은 true입니다.The second condition is true because the slider's value is a number, and the corresponding result is returned. "Result2""Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3")If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") 첫 번째와 두 번째 조건이 모두 false이며 DefaultResult가 제공되었고 반환됩니다.Both the first and second conditions are false, a DefaultResult was provided, and it's returned. "Result3""Result3"
Switch( Slider1.Value, 25, "Result1" )Switch( Slider1.Value, 25, "Result1" ) 슬라이더의 값이 검사할 첫 번째 값과 일치하며 해당 결과가 반환됩니다.The slider's value matches the first value to be checked, and the corresponding result is returned. "Result1""Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" )Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) 슬라이더의 값이 검사할 두 번째 값과 일치하며 해당 결과가 반환됩니다.The slider's value matches the second value to be checked, and the corresponding result is returned. "Result2""Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" )Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) 슬라이더의 값이 검사할 모든 값과 일치하지 않습니다.The slider's value doesn't match any value to be checked. DefaultResult가 제공되었으므로 반환됩니다.A DefaultResult was provided, so it's returned. "DefaultResult""DefaultResult"

동작 수식에서 분기Branching in behavior formulas

이 예제는 FirstName이라는 텍스트 입력 컨트롤에 "John"이라는 값이 입력되어 있습니다.In these examples, a Text input control named FirstName has the value "John" typed into it.

수식Formula 설명Description 결과Result
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) )If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) 조건이 true이므로 Navigate 함수가 실행됩니다.The condition is true, so the Navigate function runs. IsBlank 함수를 사용하면 필수 양식 필드가 채워져 있는지 테스트할 수 있습니다.You can use the IsBlank function to test whether a required form field has been filled in. FirstName공백인 경우 이 수식은 아무 효과가 없습니다.If FirstName were blank, this formula would have no effect. truetrue

화면이 Screen1으로 변경됩니다.The display is changed to Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() )If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) ! 연산자가 없으면Without the ! 조건이 false이므로 Navigate 함수가 실행되지 않습니다.operator, the condition is false, so the Navigate function doesn't run. Back 함수가 DefaultResult로 제공되었으므로 실행됩니다.The Back function was provided as a DefaultResult, so it runs. truetrue

화면이 이전에 표시된 화면으로 돌아갑니다.The display goes back to the screen that was previously shown.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) )Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) FirstName.Text의 값이 "Carlos", "Kirstin", "John" 순서로 비교됩니다.The value of FirstName.Text is compared against "Carlos", "Kirstin", and "John" in that order. 'John'과 일치하는 항목이 있으므로 앱이 Screen3으로 이동합니다.A match is found with "John", so the app navigates to Screen3. truetrue

화면이 Screen3으로 변경됩니다.The display is changed to Screen3.

단계별 가이드Step by step

  1. 텍스트 입력 컨트롤을 추가하고 기본적으로 해당 이름이 없는 경우 이름을 Text1로 지정합니다.Add a Text input control, and name it Text1 if it doesn't have that name by default.
  2. Text130을 입력합니다.In Text1, type 30.
  3. Label 컨트롤을 추가하고 Text 속성을 다음 수식으로 설정합니다.Add a Label control, and set its Text property to this formula:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    레이블 컨트롤에 Order more!가 표시됩니다.The Label control shows Order more! Text1의 값이 20보다 크지만 40보다 작기 때문입니다.because the value of Text1 is more than 20 but less than 40.

  4. Text115를 입력합니다.In Text1, type 15.

    레이블 컨트롤에 Order MANY more!가 표시됩니다.The Label control shows Order MANY more! Text1의 값이 20보다 작기 때문입니다.because the value of Text1 is less than 20.

  5. Text150을 입력합니다.In Text1, type 50.

    입력한 값이 40 이상이기 때문에 레이블 컨트롤에 이 값이 표시됩니다.The Label control shows the value that you typed because it's more than 40.