본문 바로가기
기술자료 (KB)/Power Platform

Power Apps - 분기 예산, 사용금액 및 남은 금액 확인 방법

by 이완주 2023. 3. 1.

아래 날짜를 선택하면 해당 분기 예산이 나오고 이전달까지 사용 금액을 자동 계산해 주어서  

이번달 사용 가능 금액을 표기해 주기를 원한다. 

 

 

여기서 모든 데이터를 다룰 수는 없어 계산 수식만 설명. 

 

분기예산 - Employee1 (SharePoint List)에 현재 로그온 사용자의 이름을 기준으로 값을 가져와 화면에 출력 기준 단위가 만원단위로 원단위로 환산하여 값을 넣음 

Text(LookUp(Employee1,EName=varName,Cost1)*10000,"#,###") 

 

사용금액 - 선택된 날짜를 나머지 (Mod) 함수를 사용하여 3으로 나눈 나머지 값을 확인 

   값은 1, 2, 0    3가지 값이 나타나게 된다. 

여기서 1은 해당 분기의 첫번째 달, 2는 두번째 달, 0은 마지막 달을 의미한다. 

Mod(Value(Text(DatePicker4.SelectedDate,"mm")),3) 

 

위의 결과를 조건을 기준으로 값이 1인 경우 해당 분기의 첫번째 달로 이전 달이 없음으로 사용 내역이 없어 0의 값을 출력 

여기서 값을 0이 아닌 Text(0,"#,###")으로 텍스트 형식을 맞추어 다른 값이 왔을 때 형식을 맞추어야 한다. 

If(  

    Value(Mod(Value(Text(DatePicker4.SelectedDate,"mm")),3))=1,  

         Text(0,"#,###"), 

 

두번째 조건으로 값이 2일때 현재 로그온한 사용자의 정보를 가져와 데이터가 들어 있는 SharePoint Lists (ExpenseService)의 날짜를 가져와서 해당 데이터의 값의 년월 값과 선택된 날짜의 월에서 1달을 뺀 값의 년월이 같은 값의 합(Sum)을 구해 만 날짜에서 2월을 선택하면 이전달인 1월에 사용한 금액을 알 수 있게 된다. 

 

 

선택된 날짜에서 한달을 뺀 값, 즉 선택된 날짜 이전 달 

 

DateAdd (DatePicker4.SelectedDate,-1,TimeUnit.Months),"yyyymm") 

 

아래는 위의 설명한 두번째 조건 값 

Value(Mod(Value(Text(DatePicker4.SelectedDate,"mm")),3))=2, 

 

        Text(Sum(Filter(RenameColumns(ExpenseService,"UseDate","UseDate1"),Name=varName And Text(DateValue(UseDate1),"yyyymm")=Text(DateAdd(DatePicker4.SelectedDate,-1,TimeUnit.Months),"yyyymm")),Cost),"#,###"), 

 

 

세번째 조건은 나머지가 0인 값 즉 3월 6월 9월 12월에 해당될 때 분기 마지막 달로 

3월의 경우 1월과 2월의 사용 금액을 합산하여 나타내면 된다. 

 

현재 로그온한 사용자를 기준으로 3월을 선택하면 1월 금액과 2월 금액을 합한 금액을 나타나게 됨. 

Text(Text(Sum(Filter(RenameColumns(ExpenseService,"UseDate","UseDate1"),Name=varName And Text(DateValue(UseDate1),"yyyymm")=Text(DateAdd(DatePicker4.SelectedDate,-1,TimeUnit.Months),"yyyymm")),Cost))+Text(Sum(Filter(RenameColumns(ExpenseService,"UseDate","UseDate1"),Name=varName And Text(DateValue(UseDate1),"yyyymm")=Text(DateAdd(DatePicker4.SelectedDate,-2,TimeUnit.Months),"yyyymm")),Cost)),"#,###") 

 

아래의 내용이 위의 내용을 모두 합한 최종 조건 문 

If( 

    Value(Mod(Value(Text(DatePicker4.SelectedDate,"mm")),3))=1, 

        Text(0,"#,###"), 

  

    Value(Mod(Value(Text(DatePicker4.SelectedDate,"mm")),3))=2, 

        Text(Sum(Filter(RenameColumns(ExpenseService,"UseDate","UseDate1"),Name=varName And Text(DateValue(UseDate1),"yyyymm")=Text(DateAdd(DatePicker4.SelectedDate,-1,TimeUnit.Months),"yyyymm")),Cost),"#,###"), 

             Text(Text(Sum(Filter(RenameColumns(ExpenseService,"UseDate","UseDate1"),Name=varName  And Text(DateValue(UseDate1),"yyyymm") = Text(DateAdd(DatePicker4.SelectedDate,-1,TimeUnit.Months),"yyyymm")),Cost)) + Text(Sum(Filter(RenameColumns(ExpenseService,"UseDate","UseDate1"),Name = varName And Text(DateValue(UseDate1),"yyyymm")=Text(DateAdd(DatePicker4.SelectedDate,-2,TimeUnit.Months),"yyyymm")),Cost)),"#,###") 

) 

 

사용가능 금액 - 선택된 날짜를 기준으로 분기 예산에서 사용금액을금액 

Text(Expanse.Text - UseExpanse.Text,"#,###") 

 

댓글