Blank, Coalesce, IsBlank 및 IsEmpty 함수
적용 대상: 캔버스 앱 바탕 화면 흐름 Dataverse 수식 열 모델 기반 앱 Power Pages Power Platform CLI
값이 비어 있거나 테이블에 레코드가 없는지 여부를 테스트하고 공백 값을 만드는 방법을 제공합니다.
개요
Blank 는 "값 없음" 또는 "알 수 없는 값"에 대한 자리 표시자입니다. 예를 들어, 사용자가 선택하지 않은 경우 Combo box control의 Selected 속성은 빈칸 입니다. 많은 데이터 원본에서 NULL 값을 저장하고 반환할 수 있으며, 이 값은 Power Apps에서 공백으로 표현됩니다.
Power Apps에서 속성 또는 계산 값은 공백일 수 있습니다. 예를 들어 부울 값은 일반적으로 true 또는 false 값 중 하나입니다. 그러나 이 두 가지 외에도 상태를 알 수 없음을 나타내는 공백일 수 있습니다. 이는 워크시트 셀이 콘텐츠가 없는 공백으로 시작하지만 TRUE 또는 FALSE 값을 포함할 수 있는 Microsoft Excel과 비슷합니다. 셀의 내용은 언제든지 다시 제거할 수 있으며, 이 경우 공백 상태로 돌아갑니다.
빈 문자열 은 문자가 포함되지 않은 문자열을 나타냅니다. Len 함수는 이러한 문자열에 대해 0을 반환하며 수식에 빈 공간의 두 개의 큰 따옴표 ""
로 쓸 수 있습니다. 일부 컨트롤과 데이터 원본은 빈 문자열을 사용하여 "값 없음" 조건을 나타냅니다. 앱 생성을 단순화하기 위해 IsBlank 및 Coalesce 함수는 두 공백 값 또는 빈 문자열을 테스트합니다.
IsEmpty 함수의 컨텍스트에서 공백은 레코드가 없는 테이블에만 적용됩니다. 테이블 구조는 열 이름을 포함한 채 그대로 완벽하게 유지될 수 있지만 테이블에는 데이터가 없습니다. 테이블은 비어있는 것으로 시작하여 레코드를 가져와서 더 이상 비어 있지 않으며, 그런 다음, 레코드를 제거하여 다시 비워둘 수 있습니다.
노트
우리는 전환기에 있습니다. 지금까지, 공백 또한 오류를 보고하는 데 사용되어 유효한 "값 없음"을 오류와 구별할 수 없습니다. 이러한 이유로 공백 값 저장은 현재 로컬 컬렉션에만 지원됩니다. 설정>예정된 기능>실험용에서 공식 수준 오류 관리 실험 기능을 킨 경우 다른 데이터 원본에서 공백 값을 저장할 수 있습니다. 이 기능을 완료하고 공백 값을 오류로부터 적절한 분리하기 위해 적극적으로 노력하고 있습니다.
빈 템플릿
적용 대상: 캔버스 앱 모델 기반 앱 Dataverse 수식 열
Blank 함수는 공백 값을 반환합니다. 이 값을 지원하는 데이터 원본에 NULL 값을 저장하여 필드에서 값을 효과적으로 제거합니다.
IsBlank
적용 대상: Canvas 앱 모델 기반 앱
IsBlank 함수는 공백 값 또는 빈 문자열을 테스트합니다. 일부 데이터 원본 및 컨트롤은 값이 없을 때 빈 문자열을 사용하므로 테스트에는 빈 문자열이 포함되어 있어 앱을 쉽게 만들 수 있습니다. 특히 공백 값을 테스트하려면 IsBlank 대신 if( Value = Blank(), ...
를 사용합니다. IsBlank 함수는 빈 테이블을 공백이 아닌 것으로 간주하며 IsEmpty는 테이블을 테스트하는 데 사용해야 합니다.
기존 앱에 대해 오류 처리를 사용하도록 설정할 경우 기존 앱 동작을 보존하기 위해 IsBlank을 IsBlankOrError로 교체하는 것을 고려해보세요. 오류 처리를 하기 전 공백 값은 데이터베이스의 null 값과 오류 값을 모두 나타내기 위해 사용되었습니다. 오류 처리는 IsBlank를 계속 사용하는 기존 앱의 동작을 변경할 수 있는 공백에 대한 두 가지 해석을 구분합니다.
IsBlank의 반환 값은 부울 참 또는 거짓입니다.
Coalesce
적용 대상: Canvas 앱 모델 기반 앱
Coalesce 함수는 인수를 순서대로 평가하고 공백 또는 빈 문자열이 아닌 첫 번째 값을 반환합니다. 이 함수를 사용하면 공백 값이나 빈 문자열을 다른 값으로 교체하지만 공백이 아닌 값과 비어 있지 않은 문자열 값은 변경하지 않습니다. 모든 인수가 공백 또는 빈 문자열이면 함수는 공백으로 반환하므로 Coalesce는 빈 문자열을 공백 값으로 변환하는 좋은 방법입니다.
Coalesce( value1, value2 )
는 If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 )
의 더 간결한 대응이며 value1 과 value2 를 두 번 평가할 필요가 없습니다. If 함수는 "else" 수식이 이 경우에서 처럼 없는 경우 공백을 반환합니다.
Coalesce에 대한 모든 인수는 같은 형식이어야 합니다. 예를 들어 숫자와 텍스트 문자열을 함께 사용할 수 없습니다. Coalesce에서 반환한 값은 이 일반 유형입니다.
IsEmpty
적용 대상: Canvas 앱 모델 기반 앱
IsEmpty 함수는 테이블에 레코드가 있는지 여부를 테스트합니다. CountRows 함수를 사용하여 0을 확인하는 것과 같습니다. IsEmpty를 Errors 함수와 결합하여 데이터 원본 오류를 확인할 수 있습니다.
IsEmpty의 반환 값은 부울 참 또는 거짓입니다.
구문
빈칸()
( Value1 [, Value2, ... ])를 합칩니다.
- 값 – 필수. 테스트할 값입니다. 각 값은 공백이 아니거나 빈 문자열이 발견되지 않을 때까지 순서대로 평가됩니다. 이 시점 이후의 값은 평가되지 않습니다.
IsBlank( 값 )
- 값 – 필수. 공백 값 또는 빈 문자열에 대해 테스트할 값입니다.
비어 있음( 테이블 )
- 표 - 필수. 레코드를 테스트할 테이블입니다.
예
빈 템플릿
노트
다음 예제는 현재 로컬 컬렉션에서만 작동합니다. 설정>예정된 기능>실험용에서 공식 수준 오류 관리 실험 기능을 킨 경우 다른 데이터 원본에서 공백 값을 저장할 수 있습니다. 이 기능을 완료하고 공백 값을 오류로부터 분리하기 위해 적극적으로 노력하고 있습니다.
앱을 처음부터 만들고 Button 컨트롤을 추가합니다.
단추의 OnSelect 속성을 다음 수식으로 설정합니다.
ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
앱을 미리 보고, 추가한 단추를 클릭하거나 탭한 다음, 미리 보기를 닫습니다.
파일 메뉴에서 컬렉션을 클릭하거나 탭합니다.
Cities 컬렉션이 나타나서 "Seattle" 및 "비"가 있는 레코드 하나가 표시됩니다.
기본 작업 영역으로 돌아가려면 뒤로 화살표를 클릭하거나 탭합니다.
Label 컨트롤을 추가하고, Text 속성을 다음 수식으로 설정합니다.
IsBlank( First( Cities ).Weather )
Weather 필드에 값("비")이 있으므로 레이블에 false가 표시됩니다.
두 번째 단추를 추가하고 OnSelect 속성을 다음 수식으로 설정합니다.
Patch( Cities, First( Cities ), { Weather: Blank() } )
앱을 미리 보고, 추가한 단추를 클릭하거나 탭한 다음, 미리 보기를 닫습니다.
Cities의 첫 번째 레코드의 Weather 필드는 공백으로 바뀌어 이전에 있었던 "비"를 제거합니다.
Weather 필드에 더 이상 값이 없으므로 레이블에 true가 표시됩니다.
Coalesce
수식 | 설명 | 결과 |
---|---|---|
병합(Blank(), 1) | Blank 함수의 반환 값을 테스트하며, 항상 공백 값을 반환합니다. 첫 번째 인수가 공백이므로 공백 값 및 비어 있지 않은 문자열을 찾을 때까지 다음 인수로 계속 평가됩니다. | 1 |
합치기( "", "2" ) | 빈 문자열인 첫 번째 인수를 테스트합니다. 첫 번째 인수가 빈 문자열이므로 공백 값 및 비어 있지 않은 문자열을 찾을 때까지 다음 인수로 계속 평가됩니다. | 2 |
병합(Blank(), "", Blank(), "", "3", "4" ) | Coalesce 는 인수 목록의 시작 부분에서 시작하여 비어 있지 않은 값과 비어 있지 않은 문자열이 발견될 때까지 각 인수를 차례로 평가합니다. 공백이 아닌 값 과 비어 있지 않은 문자열이 발견될 때까지입니다. 이 경우 처음 네 개의 인수에서 모두 공백 또는 빈 문자열을 반환하므로 다섯 번째 인수로 계속 평가됩니다. 다섯 번째 인수는 공백이 아닌 값과 비어 있지 않은 문자열이므로 평가는 여기서 중지됩니다. 다섯 번째 인수의 값이 반환되고, 여섯 번째 인수는 평가되지 않습니다. | 3 |
합체( "" ) | 빈 문자열인 첫 번째 인수를 테스트합니다. 첫 번째 인수는 빈 문자열이고 더 이상 인수가 없으므로 함수는 공백을 반환합니다. | 공백 |
IsBlank
앱을 처음부터 만들고, 텍스트 입력 컨트롤을 추가하고, 이름을 FirstName으로 지정합니다.
레이블을 추가하고 Text 속성을 다음 수식으로 설정합니다.
If( IsBlank( FirstName.Text ), "First Name is a required field." )
텍스트 입력 컨트롤의 Text 속성은 기본적으로 "Text input"으로 설정됩니다. 속성에 값이 포함되어 있으므로 공백이 아니며 레이블에 메시지가 표시되지 않습니다.
텍스트 입력 컨트롤에서 모든 공백을 포함하여 모든 문자를 제거합니다.
Text 속성에 더 이상 문자가 없으므로 이 속성은 공백이고, IsBlank( FirstName.Text )는 true가 됩니다. 필수 필드 메시지가 표시됩니다.
다른 도구를 사용하여 유효성 검사를 수행하는 방법에 대한 자세한 내용은 Validate 함수 및 데이터 원본 작업을 참조하십시오.
다른 예제:
수식 | 설명 | 결과 |
---|---|---|
IsBlank(Blank()) | Blank 함수의 반환 값을 테스트하며, 항상 공백 값을 반환합니다. | 진실 |
빈칸( "" ) | 문자가 없는 문자열입니다. | 진실 |
IsBlank( "안녕하세요") | 하나 이상의 문자가 포함된 문자열입니다. | 거짓 |
IsBlank( AnyCollection ) | 컬렉션이 있으므로 레코드가 없더라도 공백이 아닙니다. 빈 컬렉션을 확인하려면 IsEmpty를 대신 사용합니다. | 거짓 |
IsBlank( Mid( "안녕하세요", 17, 2 ) ) | Mid에 대한 시작 문자가 문자열의 끝을 벗어납니다. 결과는 빈 문자열입니다. | 진실 |
IsBlank( 거짓이면 거짓임 ) | ElseResult가 없는 If 함수입니다. 조건이 항상 false이므로 이 If는 항상 공백을 반환합니다. | 진실 |
IsEmpty
앱을 처음부터 만들고 Button 컨트롤을 추가합니다.
단추의 OnSelect 속성을 다음 수식으로 설정합니다.
수집(아이스크림, { 맛: "딸기", 수량: 300 }, { 맛: "초콜릿", 수량: 100 } )
앱을 미리 보고, 추가한 단추를 클릭하거나 탭한 다음, 미리 보기를 닫습니다.
IceCream이라는 컬렉션이 만들어지고 다음 데이터가 포함되어 있습니다.
이 컬렉션에는 두 개의 레코드가 있으며 비어 있지 않습니다. IsEmpty(IceCream) 는 false를 반환하고, CountRows(IceCream) 는 2를 반환합니다.
두 번째 단추를 추가하고 OnSelect 속성을 다음 수식으로 설정합니다.
클리어(아이스크림)
앱을 미리 보고, 두 번째 단추를 클릭하거나 탭한 다음, 미리 보기를 닫습니다.
이제 컬렉션은 다음과 같이 비어 있습니다.
Clear 함수는 컬렉션에서 모든 레코드를 제거하여 빈 컬렉션을 만듭니다. IsEmpty(IceCream) 는 true를 반환하고, CountRows(IceCream) 는 0을 반환합니다.
또한 다음 예제와 같이 IsEmpty를 사용하여 계산된 테이블이 비어 있는지 여부를 테스트할 수 있습니다.
수식 | 설명 | 결과 |
---|---|---|
비어있음( [ 1, 2, 3 ] ) | 단일 열 테이블에는 세 개의 레코드가 있으므로 비어 있지 않습니다. | 거짓 |
비어 있음( [ ] ) | 단일 열 테이블에는 레코드가 없으며 비어 있습니다. | 진실 |
필터( [ 1, 2, 3 ], 값 > 5 )가 비어 있습니까? | 단일 열 테이블에는 5보다 큰 값이 없습니다. 필터의 결과에 레코드가 없으며 비어 있습니다. | 진실 |