파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
Mudassir: 오늘은 작업할 매우 흥미로운 문제가 있습니다. 이 파일의 문제는 열로 구분되어 고정되어 있으며 Microsoft 파워 쿼리를 사용하여 이 문제를 해결하는 방법을 모르겠습니다. 이 블로그 하단에서 이 튜토리얼의 전체 비디오를 볼 수 있습니다.
첫째, 열을 동적으로 삭제하는 것이 쉽지 않았습니다. 둘째, 이 보고서에는 열 너비가 다른 테이블 하나와 열 너비가 다른 또 다른 테이블이 있습니다.
그래서 상단에 구분자를 동적으로 하나 적용하면 데이터를 깔끔하게 가져오지 못할 것 같습니다. 두 번째 테이블에서 이 모든 데이터를 가져오고 첫 번째 테이블에서 내 제품 번호를 가져오고 싶습니다. 또한 모든 테이블의 각 행에 있는 작업 번호를 원합니다.
스스로 해결하려 했지만 파워 쿼리와 관련이 있기 때문에 Melissa의 도움이 필요했습니다. 최소 이틀은 걸릴 줄 알았는데 바로 해결책을 내놓으셨다.
멜리사는 이 복잡한 문제를 어떻게 해결했는지 보여줄 것입니다. 나는 대부분의 사람들이 이러한 종류의 문제를 다루고 있으며 이를 해결하는 방법을 찾고 있다고 생각합니다.
Melissa: 첫 번째 팁은 고정 길이 파일을 보고 있는 경우 보기 탭 으로 이동하여 고정 폭 옵션을 켤 수 있다는 것입니다 .
고정 길이 글꼴임을 알 수 있습니다. 헤더, 초기 테이블 및 하위 테이블도 볼 수 있습니다. 이것들은 우리가 관심을 갖고 추출하고자 하는 부분입니다.
또한 수식 입력줄이 활성화되어 있는지 확인하십시오. 입력을 약간 수정하기 위해 자주 사용하므로 화면에 표시되도록 하는 것이 항상 좋습니다.
CSV 파일을 저장한 파일 위치에 대한 매개변수를 생성했습니다. 나는 그것을 스테이징 파일로 가져와 내 파일 위치 매개 변수에 넣었습니다. 그런 다음 참조를 만들고 해당 참조에서 작업할 것입니다. 이것이 바로 지금 Microsoft 파워 쿼리에서 살펴보고 있는 것입니다.
목차
인덱스 열 추가
일반적으로 이와 같은 파일 작업을 시작하면 클라이언트의 요구 사항을 알아야 합니다. 고객에게 필요한 것이 무엇인지, 무엇을 찾아야 하는지 묻습니다.
이 경우 헤더에서 항목 번호와 작업 번호를 얻은 다음 해당 특정 헤더에 속하는 모든 세부 정보를 원합니다.
그것들을 다시 모으려면 열쇠가 필요합니다. 그러나 키가 없으면 인덱스 열을 추가해야 합니다 . 미니 테이블 아이콘을 클릭하고 Add Index Column 을 선택한 다음 From 0 을 추가합니다 .
나중에 0 기반 인덱스가 있는 목록과 함께 논리를 사용할 것입니다. 인덱스가 0부터 시작한다는 것은 실제로 동일한 행을 참조할 수 있음을 의미합니다. 그렇지 않으면 0 기반 위치에 도달하기 위해 1을 빼야 합니다.
그런 다음 헤더가 있는 위치를 찾아야 합니다. 이러한 헤더는 전체 파일에서 지속적으로 반복되기 때문에 매우 쉽게 수행할 수 있습니다.
시작하려면 이 값을 복사해 보겠습니다.
새 빈 쿼리를 추가하고 붙여넣은 다음 이를 HeaderID 라고 합니다 .
하위 테이블에 대해 동일한 프로세스를 수행합니다. 해당 텍스트 문자열을 복사하고 다른 빈 쿼리를 만든 다음 해당 값을 붙여넣습니다. 자세한 행을 찾을 때 사용할 문자열이 됩니다.
이 프로세스가 이러한 테이블의 헤더를 변경하는 경우 텍스트 문자열 중 하나를 변경하기만 하면 파일이 다시 작동합니다.
우리가 찾고 있는 문자열을 검색하기 위해 M 코드에 뛰어들 필요가 없습니다. 이것을 매개 변수로 사용할 수 있습니다.
이 두 쿼리에 대한 로드를 활성화하겠습니다.
Microsoft 파워 쿼리에서 버퍼 목록 만들기
가장 먼저 할 일은 Column1을 한 번 참조하고 메모리에 로드하여 목록으로 만드는 것입니다. 이렇게 하면 파일을 반복적으로 호출할 필요가 없습니다.
고급 편집기를 열고 맨 위에 배치하겠습니다. 사용자 인터페이스를 사용하여 코드를 빌드하면 이전 단계를 참조합니다.
코드의 다른 곳에 버퍼 단계를 배치하고 수정하려는 경우 나중에 수동으로 생성하는 단계를 변경하는 데 도움이 됩니다.
이 BufferList를 호출 하고 Column1을 참조하겠습니다. 메모리에 로드하기 위해 List.Buffer 단계를 추가하겠습니다 .
여기 내 변수가 맨 위에 있습니다. 반복해서 참조할 수 있습니다.
가장 먼저 결정하고 싶은 것은 헤더 섹션을 유지하고 모든 행에 대해 단일 값을 가져오기 위한 키가 필요하기 때문에 헤더가 시작되는 위치입니다. 이를 위해 사용자 지정 열을 추가하고 이름을 Header 로 지정합니다 .
Column1이 헤더 ID와 같으면 인덱스 번호가 null이 되기를 원합니다.
결과적으로 텍스트를 찾아 5와 23을 반환했습니다.
모든 행에서 해당 값이 필요하므로 해당 값을 채워야 합니다. 마우스 오른쪽 버튼을 클릭하여 채울 수도 있지만 매우 간단한 구문을 사용하여 수식 입력줄에 추가할 수도 있습니다.
이 경우 Table.FillDown을 추가 하고 텍스트 문자열에 채울 열(헤더)을 표시했습니다.
이제 우리는 모든 행에 대해 그것을 채웠습니다. 모든 헤더 섹션과 모든 행 섹션이 이 값을 공유하기 때문에 키가 있습니다.
행에서 헤더 분할
다음 단계는 행에서 헤더를 분할하는 것입니다. 다른 사용자 지정 열을 추가하고 이름을 Temp 로 지정하겠습니다 . 이번에는 좀 더 정교한 작업을 수행하고 이전에 생성한 BufferList를 활용할 것입니다 .
우리는 두 가지 목록 함수를 사용하여 각 위치를 살펴보고 인덱스와 일치하는 항목이 있는지 찾을 것입니다.
if 문 으로 시작 하고 List.Contains를 사용하여 BufferList 에서 특정 위치를 찾고 쿼리 HeaderID를 참조합니다 .
우리는 파일의 전체 길이에서 그것을 찾고 목록 내에서 항목의 위치를 반환하려고 합니다. 인덱스와 일치하면 해당 특정 행과 일치합니다.
그런 다음 헤더를 식별하기 위해 값을 반환하고 싶습니다. 이 경우 H만 반환합니다. 구문을 복사하여 다시 작성할 필요가 없습니다.
또한 행 섹션을 식별해야 합니다. 목록에 HeaderID 가 아니라 DetailID가 포함되어 있으면 행 섹션에 있는 것입니다.
Column1 이 빈 텍스트 문자열 이면 빈 상태 로 유지하고 싶습니다 . 그렇지 않은 경우 null 이길 원합니다 .
이 야당은 헤더 행을 가져오고 H를 반환한 다음 세부 행을 찾고 R을 반환했습니다. 그런 다음 해당 행 섹션 내에서 공유되는 모든 항목에 대해 0을 반환했습니다.
이러한 공백 또는 null은 채울 수 있기 때문에 중요합니다. 채우기는 빈 셀을 가로질러 이동하지 않으므로 나중에 제거할 수 있습니다.
수식 입력줄에서 이 작업을 수행하고 Table.FillDown을 다시 사용합니다. Temp 열인 열 이름이 있는 목록이 필요합니다 .
이제 이 열 전체에서 H 및 R 값이 반복되므로 세부 섹션에서 헤더를 실제로 분할할 수 있습니다.
코드를 작성하지 않으려는 경우 사용자 인터페이스에서 채울 수도 있습니다. 마우스 오른쪽 버튼을 클릭하고 Fill 을 선택한 다음 Down 을 선택하면 됩니다 .
Microsoft 파워 쿼리에서 Null 및 공백 제거
이제 이 권한이 있으므로 필요하지 않은 것을 제거할 수 있습니다. null이거나 공백을 포함하는 모든 행은 필요하지 않아 제거해야 하는 행입니다. 필터링을 통해 제거할 수 있습니다.
섹션 나누기
공백과 null을 제거하면 필요한 모든 것이 남습니다. 이 시점에서 섹션을 분할할 수 있습니다. 머리글 행에 집중할 수 있으며 모든 세부 정보 행(별도의 간격도 있음)과 별도의 간격이 있기 때문에 헤더 행을 선택할 수 있습니다.
같은 열에 다른 필터를 만들 수 있도록 수식 입력줄에 새 단계를 추가하겠습니다. 이 경우 모든 헤더 섹션을 유지하겠습니다.
이제 여기에 모든 헤더 행이 있습니다.
Column1 을 선택 하고 수식 입력줄로 이동하여 열 분할 을 선택한 다음 위치별로 분할할 수 있습니다.
그런 다음 전원 쿼리 자체에서 이 문제를 파악하도록 합니다. 몇 가지 위치를 제안합니다. 확인을 클릭하여 해당 위치를 수락합니다.
헤더에서 관심이 있는 유일한 항목은 항목 과 작업 번호 입니다 .
여기 수식 입력줄 내에서 항목 및 작업 번호 로 이름을 바꿀 수 있습니다 . 이렇게 하면 다른 열 이름 바꾸기 단계에서 나를 구할 수 있습니다.
이 단계 후에 내가 해야 할 일은 Item 과 Job # 을 선택 하고 물론 헤더 키를 선택하는 것입니다 . 그런 다음 더 이상 필요하지 않기 때문에 다른 모든 열을 제거합니다.
이것이 결과가 될 것입니다. 여전히 값을 정리하고 텍스트 항목과 대시를 제거해야 합니다. 우리가 원하는 것은 그 사이의 값입니다.
그래서 우리는 이것을 열고 대시와 항목을 선택 해제합니다.
이제 모든 헤더가 완료되었습니다.
DetailID 에 대해서도 동일한 프로세스를 수행해야 합니다 . 나중에 조금 더 쉽게 다시 돌아갈 수 있도록 해당 단계의 이름을 바꿔야 합니다.
우리가 시작한 초기 쿼리로 다시 트래버스합니다. 적용된 단계 창에서 필터링된 행으로 시작했습니다.
이것을 복사하여 내 필터에 추가하겠습니다. 이번에는 H가 아니라 R을 선택하겠습니다.
그런 다음 Column1을 선택하고 분할 열로 이동하여 위치별로 분할한 다음 파워 쿼리에서 파악하도록 합니다.
이것이 파워 쿼리가 제안하는 것입니다. 한번 해봅시다.
이���은 실제로 꽤 좋아 보인다. 전체 행도 완벽하게 분할됩니다. 물론 들여쓰기가 있기 때문에 공백이 많습니다.
Microsoft 파워 쿼리에서 텍스트 문자열 자르기
첫 번째 열을 선택한 다음 아래쪽 + Shift를 눌러 열 1.10까지 선택합니다. Transform 으로 이동하여 Format 을 선택한 다음 Trim 을 선택합니다 . 트리밍은 문자열 사이가 아닌 문자열 앞이나 끝에 있는 여분의 공백만 제거합니다.
다음으로 머리글을 승격할 수 있으므로 이러한 열의 머리글이나 제목을 모두 입력할 필요가 없습니다. 분할 단계에서 두 열의 이름을 변경했습니다. 물론 열이 10개인 경우에는 약간 귀찮습니다.
우리는 또한 이러한 초과 가치를 제거해야 합니다. 총계가 있기 때문에 이 마지막 세 열 중 하나를 사용해야 합니다. 그 사이 어딘가에 추가 값이 있는 유일한 행이기 때문입니다. 그런 다음 해당 공백, 대시 및 텍스트를 선택 취소합니다.
그런 다음 불필요한 열을 제거하여 머리글과 세부 정보만 있는 테이블만 남게 합니다. 해당 섹션을 다시 결합하려면 키가 필요합니다.
이를 위해 자체 병합을 사용하여 테이블을 병합하여 해당 정보를 다시 가져올 수 있습니다. 홈 탭 에서 병합을 선택한 다음 열 5와 동일한 쿼리를 선택합니다.
AllDetails 대신 병합할 초기 테이블로 AllHeaders를 원합니다.
이것은 각 항목 및 각 작업 번호에 대한 단일 행이 있는 헤더 테이블의 모든 정보를 다시 가져왔습니다.
키를 사용하여 세부 정보 행과 병합했습니다. 여기 공백의 측면을 누르면 헤더 5에 속하는 모든 행의 미리보기가 표시됩니다.
여기에서 마지막 열을 제거한 다음 Microsoft 파워 쿼리에서 혼합 고정 열 너비 수정을 완료했습니다.
결론
이 자습서에서는 Microsoft 파워 쿼리를 사용하여 혼합 고정 열 너비 문제를 해결하는 방법을 제시했습니다. 이 특정 튜토리얼에서 다루는 내용이 마음에 드셨다면 LuckyTemplates TV 채널을 구독하는 것을 잊지 마십시오.
저와 다양한 콘텐츠 작성자가 항상 제공하는 엄청난 양의 콘텐츠가 있습니다. 이들 모두는 LuckyTemplates 및 Power Platform을 사용하는 방식을 개선하는 데 전념하고 있습니다.
여자 이름
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것