LuckyTemplates에서 동적으로 여러 열 피벗 해제

이 자습서에서는 List.Zip을 사용하여 파워 쿼리에서 여러 열의 피벗을 해제하는 방법에 대해 이전에 다룬 항목을 다시 살펴보겠습니다. LuckyTemplates 회원이 에서 해당 메서드를 동적으로 만드는 방법에 대해 질문했습니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.

우리는 많은 M 함수를 작성할 것이고 그 중 일부는 여러분에게 생소할 수도 있기 때문에 이것을 고급이라고 표시했습니다.

이제 파워 쿼리로 이동하겠습니다.

목차

표 형식의 데이터

보시다시피 이 데이터는 이미 분석에 적합한 적절한 태블릿 형식으로 변환되었습니다. 이 프로세스는 매우 중요하지만 여기에서는 다루지 않지만 각 단계를 간략하게 살펴보겠습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

소스 단계에서는 위에 나열된 각 속성에 대한 시간 및 연락처인 값 쌍이 지속적으로 반복되는 것을 볼 수 있습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

적용된 단계 에서 나머지 단계를 볼 수 있습니다. 일부 맨 위 행을 제거하고 빈 열을 제거하고 텍스트 값을 정리하고 채웠습니다. 그런 다음 데이터를 바꾸고, 빈 레코드를 제거하고, 열 1과 2를 병합하고, 텍스트 값을 다시 정리하고, 데이터를 다시 바꿉니다.

우리는 사용자 지정 단계를 생성했으며 나중에 자세히 살펴보고 목록에서 값을 추출한 다음 마지막으로 유형을 변경했습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

전체 코드를 살펴보겠습니다. 여기서 우리가 관심을 가지는 것은 List.Zip 함수입니다. 간략하게 요약하자면 단일 목록을 매개변수 로 받은 다음 ���록을 반환합니다. 결과적으로 이 인스턴스의 이 단일 목록에는 세 개의 개별 목록이 포함되어 있음을 알 수 있습니다.

첫 번째 목록을 살펴보면 하드 코딩된 속성 이름과 입력된 텍스트 값만 포함되어 있습니다. 두 번째 목록에는 시간 값에 대한 하드 코딩된 열 참조가 포함되어 있습니다. 최종 목록에는 연락처 값에 대한 하드 코딩된 열 참조가 포함되어 있습니다.

그런 다음 List.Zip은 이 세 목록 각각에서 요소를 가져와서 새 목록에서의 위치에 따라 결합합니다. 예를 들어 해당 목록의 각 첫 번째 요소는 새 목록으로 결합됩니다. 해당 목록에서 두 번째로 나열된 모든 값에 대해서도 마찬가지입니다.

하드 코딩된 값은 속성이 시간이 지남에 따라 변경될 가능성이 없는 경우 문제가 될 수 있습니다. 따라서 다음에 모든 항목이 없거나 새 항목이 있으면 문제가 발생할 수 있습니다.

여러 열을 동적으로 Unpivot하도록 코드 변경

그렇다면 이를 어떻게 동적으로 만들 수 있을까요?

내가 하는 첫 번째 일은 별도의 단계를 설계하지 않고도 해당 속성 값을 선택할 수 있는 위치가 있는지 확인하기 위해 코드를 단계별로 실행하는 것입니다. 따라서 코드를 뒤로 물러나서 이 RemoveNull 단계가 완벽합니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

여기 열 1에 모든 속성 값이 나열되어 있음을 알 수 있습니다. 사용자 인터페이스를 사용하여 추출할 수 있습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

해당 헤더를 마우스 오른쪽 버튼으로 클릭하고 아래에서 Add as new query 를 선택합니다 .

LuckyTemplates에서 동적으로 여러 열 피벗 해제

우리는 이 목록을 얻었고 이전에 본 하드 코딩된 목록을 동적 목록으로 바꾸고 싶기 때문에 좋은 소식입니다. 우리가 해야 할 일은 값을 정리하는 것뿐입니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

이러한 null을 제거하여 시작하겠습니다. 따라서 수식 입력줄 안에 List.RemoveNulls 를 추가합니다 . 이제 볼 수 있듯이 모든 항목이 반복되며 이는 값 쌍 때문입니다. 시간당 한 번 나열됩니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

그런 다음 다시 연락처에 대해 이러한 중복을 제거하기 위해 List.Distinct 를 추가할 수 있습니다 . 이제 이 논리를 만들었으므로 이를 복사하여 샘플 쿼리에 다시 붙여넣기만 하면 됩니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

샘플 쿼리 에서 고급 편집기를 열고 새 변수 이름을 만듭니다. 그것을 AttributeList 라고 부르자 . 그런 다음 코드를 붙여넣고 쉼표를 넣습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

이제 사용자 지정 단계로 돌아가 보겠습니다 . List.Zip 내에서 첫 번째 목록을 변수 이름(AttributeList)으로 바꿀 수 있습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

이제 두 번째 목록을 자세히 살펴보겠습니다. 우리는 그것이 열 이름을 참조한다는 것을 알고 있으며, 각 열 이름은 공백과 텍스트 "hours"가 뒤따르는 해당 목록에 이미 있는 것과 동일한 속성으로 시작합니다.

각 항목에 접미사를 추가하기만 하면 됩니다. 이제 한 단계 뒤로 이동하고 사용자 지정 열을 추가하여 몇 가지 논리를 생성해 보겠습니다.

동적으로 다중 열 피벗 해제: 사용자 지정 열 논리 추가

임시 열일 뿐이므로 적절한 이름을 지정할 필요가 없습니다. 완료되면 제거하겠습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

목록의 값을 변경하려면 List.Transform 함수를 사용할 수 있습니다. AttributeList 의 값을 변환해야 하므로 붙여넣겠습니다.

여기 헤더에서 텍스트 값이 대문자로 시작하고 나머지는 소문자임을 알 수 있습니다. 속성에는 대문자 단어만 포함되어 있으므로 해당 텍스트 값도 변환해야 합니다. 밑줄을 사용하여 목록의 각 항목에 액세스하고 해당 접미사를 추가할 수 있습니다.

이를 통해 열에 목록 값을 얻습니다. 어떤 것을 선택하든 상관없지만 여기 있는 흰색 공간의 측면을 클릭하면 됩니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

페이지 아래에 우리가 만든 목록의 미리보기가 표시됩니다. 이제 열 머리글이 대/소문자가 적절하게 구분되어 이 목록과 함께 여기에 표시되는 열 머리글과 일치하는 것을 볼 수 있습니다.

이제 액세스하려는 레코드의 필드를 식별할 수 있는 방법이 있습니다. 사용자 지정 열 대화 상자를 다시 열고 Record.SelectFields 를 추가해 보겠습니다 . 레코드를 레코드로 원하므로 밑줄을 사용하여 현재 레코드에 액세스할 수 있습니다. 그런 다음 모든 필드 이름이 포함된 목록을 제공했으므로 닫는 괄호를 추가하고 확인을 누릅니다 .

LuckyTemplates에서 동적으로 여러 열 피벗 해제

그래서 우리는 더 이상 목록이 없지만 이제 레코드를 얻습니다. 해당 레코드의 내용을 보려면 흰색 공간의 측면을 다시 클릭하십시오. 여기에 레코드 필드 이름과 레코드 필드 값이 나열되어 있음을 알 수 있습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

그러나 레코드 필드 값에만 관심이 있으므로 이를 추출해야 합니다. 사용자 지정 열 대화 상자로 돌아가서 Record.FieldsValues ​​를 추가해 보겠습니다 .

LuckyTemplates에서 동적으로 여러 열 피벗 해제

이제 목록이 다시 표시되고 더 이상 레코드가 아닙니다. 다시 공백의 측면을 클릭하면 해당 값만 포함된 목록이 있는 것을 볼 수 있습니다. 좋아 보입니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

마지막 닫는 괄호를 제외하고 생성한 전체 논리를 복사해 보겠습니다. 이제 임시 열이 더 이상 필요하지 않으므로 제거할 수 있습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

수식 입력줄에서 두 번째 목록을 선택하고 논리로 바꿉니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

연락처에 대한 레코드 필드 값이 포함된 목록을 만들려면 접미사만 변경하면 됩니다. 따라서 마지막 목록도 선택하고 로직을 붙여넣을 수 있습니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제

그런 다음 시간 대신 연락처로 변경해 보겠습니다 .

LuckyTemplates에서 동적으로 여러 열 피벗 해제

오류도 없고 잘 보입니다. 이것은 이제 여러 열의 피벗을 해제하는 동적 솔루션입니다.

LuckyTemplates에서 동적으로 여러 열 피벗 해제


LuckyTemplates Unpivot 열 – 파워 쿼리 자습서
LuckyTemplates에서 열을 Unpivot하는 방법
LuckyTemplates에서 Unpivot 및 Pivot 기본 사항 – 쿼리 편집기 검토

결론

이것이 List.Zip을 사용하여 에서 동적으로 여러 열의 피벗을 해제하는 방법입니다 .

새 속성이 들어오면 AttributeList에 의해 자동으로 선택됩니다. 항목이 더 이상 존재하지 않으면 해당 목록에 표시되지 않습니다.

나는 당신이 이것을 즐겼기를 바랍니다. 이 자습서에 대한 자세한 내용은 아래 전체 비디오를 시청하고 LuckyTemplates에서 여러 열 피벗 해제에 대한 자세한 내용은 아래 링크를 확인하세요.

모두 제일 좋다

여자 이름

Leave a Comment

SharePoint의 계산된 열 | 개요

SharePoint의 계산된 열 | 개요

SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.

Power Apps에서 변수 만들기: 컬렉션 작업

Power Apps에서 변수 만들기: 컬렉션 작업

컬렉션 변수를 사용하여 Power Apps에서 변수 만드는 방법 및 유용한 팁에 대해 알아보세요.

Microsoft Flow HTTP 트리거 | Power Automate 자습서

Microsoft Flow HTTP 트리거 | Power Automate 자습서

Microsoft Flow HTTP 트리거가 수행할 수 있는 작업과 Microsoft Power Automate의 예를 사용하여 이를 사용하는 방법을 알아보고 이해하십시오!

Power Automate 흐름: 사용법 및 유형 설명

Power Automate 흐름: 사용법 및 유형 설명

Power Automate 흐름 및 용도에 대해 자세히 알아보세요. 다양한 작업 및 시나리오에 사용할 수 있는 다양한 유형의 흐름에 대해 설명합니다.

흐름에서 Power Automate 종료 작업 제어

흐름에서 Power Automate 종료 작업 제어

조건이 충족되지 않는 경우 흐름에서 작업을 종료하는 Power Automate 종료 작업 컨트롤을 올바르게 사용하는 방법을 알아봅니다.

PowerApps 시작 기능: 앱에서 다른 서비스를 시작하는 방법

PowerApps 시작 기능: 앱에서 다른 서비스를 시작하는 방법

PowerApps 실행 기능에 대해 자세히 알아보고 자신의 앱에서 바로 웹사이트, 전화, 이메일 및 기타 앱과 같은 기타 서비스를 실행하십시오.

Power Automate의 HTTP 요청 – 소개

Power Automate의 HTTP 요청 – 소개

타사 애플리케이션 통합과 관련하여 Power Automate의 HTTP 요청이 작동하는 방식을 배우고 이해합니다.

Power Automate Desktop: 마우스 클릭 보내기 기능을 사용하는 방법

Power Automate Desktop: 마우스 클릭 보내기 기능을 사용하는 방법

Power Automate Desktop에서 Send Mouse Click을 사용하는 방법을 알아보고 이것이 어떤 이점을 제공하고 흐름 성능을 개선하는지 알아보십시오.

PowerApps 변수: 컨텍스트 및 전역 변수 식별

PowerApps 변수: 컨텍스트 및 전역 변수 식별

PowerApps 변수의 작동 방식, 다양한 종류, 각 변수가 앱에 기여할 수 있는 사항을 알아보세요.

Power Automate에서 실행할 데스크톱 흐름 예약

Power Automate에서 실행할 데스크톱 흐름 예약

이 자습서에서는 Power Automate를 사용하여 웹 또는 데스크톱에서 작업을 자동화하는 방법을 알려줍니다. 데스크톱 흐름 예약에 대한 포괄적인 가이드를 제공합니다.