Power Apps에서 고유한 데이터를 검색하는 방법

4462 단어 PowerApps
예를 들어 이런 데이터가 있다고 합시다.


여기에서 모델명만의 리스트를 만들고 싶은 경우, 또는 용량의 차이를 보지 않고 모델명과 칼라만의 리스트를 만들고 싶은 경우, 어떻게 하면 좋을까요?
그런, "쉽게 할 수 있지만 조금 고전할 것 같은"과제의 해결 방법을 소개합니다.

중복 제거



단순히 중복을 제거하는 경우 Power Apps는 Distinct 함수이라는 것을 제공합니다.
이것은 지정된 콜렉션/테이블에 대해 지정된 컬럼에 대한 중복을 제거하고 결과 목록을 리턴하는 함수입니다.
결과는 Split과 같은 시간과 마찬가지로 Result라는 열로 반환됩니다.
위의 예에서 말하면, 예를 들어 Name 열에 대해서 중복을 배제하고 싶은 경우(결과는 iPhone XR과 iPhone 11만이 되는 것이 상상할 수 있는 양입니다만), 대상이 되는 콜렉션을 prodList라고 하면, 다음과 같이 에 쓸 수 있습니다.
Distinct(prodList, Name)

※열명은 ""로 둘러싸거나 하지 않는다



이것만으로, 모델명에 관한 일의인 리스트(중복을 배제한 결과)를 얻을 수 있었습니다!

라고, 이것 뿐이라고 사용도 생각하지 않는다. 특히 이번 경우에는, 1개의 레코드가 Name-Color-Capacity에서 일의가 되어 있지요.
여기에서 이름과 색상을 포함하여 중복되지 않은 목록을 만들려면 어떻게해야합니까?

AddColumns + Ungroup으로 해결



전략으로서는, 우선 Name으로 일의인 리스트를 만들어 두고, 거기에 AddColumns 해 주면 됩니다. 예를 들어 Name과 Color라면 다음과 같은 진행 방법으로.


결과만 쓰면
RenameColumns(
    Ungroup(
        AddColumns(
            RenameColumns(
                Distinct(
                    prodList,
                    Name
                ),
                "Result",
                "ProdName"
            ),
            "col",
            Distinct(
                Filter(
                    prodList,
                    Name = ProdName
                ),
                Color
            )
        ),
        "col"
    ),
    "Result",
    "Color"
)

이런 수식입니다. AddColumns 하고 Ungroup 하는 것은, 이전의 데이터 조인 게시 에서 자세하게 해설하고 있으므로, 괜찮다면 봐 주세요.
결과는, 목적대로, 모델명과 칼라만으로 일의인 리스트가 완성되었습니다.


해설



단번에 써 버렸으므로, 부분마다 해설합니다.
        AddColumns(
            RenameColumns(
                /*ここは名前でDistinctしたところ*/
                Distinct(
                    prodList,
                    Name
                ),
                /*AddColumnsの時のために名前を変えておく*/
                "Result",
                "ProdName"
            ),
            "col",
            Distinct(
                Filter(
                    prodList,
                    Name = ProdName
                ),
                Color
            )
        )

여기에서는, 우선 원래의 Distinct(...)로 RenameColumns 하고 있습니다. 이것은 편의상입니다.
그 후의 AddColumns입니다만, 추가하는 열은 위에서 나타낸 바와 같이, 원의 리스트를, Distinct한 결과의 각 행(모델명)으로 필터 해, 한층 더 칼라로 Distinct 하고 있습니다. 중간 결과로 다음과 같은 데이터가 생성됩니다.


나머지 부분이지만 Ungroup하고 RenameColumns입니다.
RenameColumns(
    Ungroup([上の結果],"col"),
    "Result",
    "Color"
)

Ungroup은 중첩된 테이블을 푸는 작업입니다. 여기에서는 col이라는 열로 전개하는 것으로 중첩이 풀어,

이런 데이터가 됩니다.
마지막은 Result를 원래 이름, Color로 되돌리고 있습니다.

그래서,
Distinct하고, AddColumns, 그 때 추가하는 것은 Filter한 리스트의 Distict한 것. Ungroup에서 중첩 해제.
라는 단계에서 두 개의 열로 고유한 목록을 만들 수 있었습니다.



Power Apps 데이터 조작은 중간 결과를 보면서 진행하는 것이 좋습니다.
될 때까지는 한 개 한 개 분해하여 컬렉션에 저장하고 데이터 테이블에서 내용을 확인하면서 진행합시다.
어쨌든, 고유한 데이터 = Distinct를 이용한다는 것만 기억해 주시면, 다음에 연결하기 쉽다고 생각합니다!

질문은 Twitter까지!

좋은 웹페이지 즐겨찾기