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

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에서 여러 열 피벗 해제에 대한 자세한 내용은 아래 링크를 확인하세요.

모두 제일 좋다

여자 이름


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것