내용

때로는 원본 데이터에서 가져와야 하는 행의 수와 행을 정확히 알지 못하는 경우가 있습니다. 텍스트 파일에서 파워 쿼리로 데이터를 로드해야 한다고 가정합니다. 언뜻 보기에는 큰 문제가 되지 않습니다. 어려움은 파일이 정기적으로 업데이트되고 내일 데이터가 포함된 다른 행 수, 헤더가 XNUMX행이 아니라 XNUMX행 등일 수 있다는 것입니다.

파워 쿼리에서 플로팅 프래그먼트 가져오기

즉, 어떤 라인에서 시작하여 정확히 몇 개의 라인을 가져와야 하는지 확실하게 미리 말할 수는 없습니다. 그리고 이것은 이러한 매개변수가 요청의 M 코드에 하드 코딩되어 있기 때문에 문제입니다. 그리고 첫 번째 파일을 요청하면(5번째부터 4줄 가져오기) 두 번째 파일에서는 더 이상 제대로 작동하지 않습니다.

쿼리 자체가 가져올 "부동" 텍스트 블록의 시작과 끝을 결정할 수 있다면 좋을 것입니다.

내가 제안하고 싶은 솔루션은 우리 데이터에 우리가 필요로 하는 데이터 블록의 시작과 끝의 마커(기능)로 사용할 수 있는 몇 가지 키워드나 값이 포함되어 있다는 아이디어를 기반으로 합니다. 이 예에서 시작 부분은 단어로 시작하는 줄이 될 것입니다. SKU, 그리고 끝은 단어가 있는 줄입니다. 금액. 이 행 유효성 검사는 조건부 열을 사용하여 파워 쿼리에서 쉽게 구현할 수 있습니다. IF (만약) • 마이크로소프트 엑셀.

어떻게하는지 보자.

먼저 텍스트 파일의 내용을 명령을 통해 표준 방식으로 파워 쿼리에 로드해 보겠습니다. 데이터 – 데이터 가져오기 – 파일에서 – 텍스트/CSV 파일에서 (데이터 – 데이터 가져오기 – 파일에서 – 텍스트/CSV 파일에서). 파워 쿼리를 별도의 추가 기능으로 설치한 경우 해당 명령이 탭에 표시됩니다. 파워 쿼리:

파워 쿼리에서 플로팅 프래그먼트 가져오기

항상 그렇듯이 가져올 때 열 구분자 문자(이 경우에는 탭)를 선택할 수 있으며 가져온 후에는 자동으로 추가된 단계를 제거할 수 있습니다. 수정된 유형 (변경된 유형)열에 데이터 유형을 할당하기에는 너무 이르기 때문입니다.

파워 쿼리에서 플로팅 프래그먼트 가져오기

이제 명령으로 열 추가 – 조건부 열 (열 추가 - 조건부 열)블록의 시작과 끝에서 두 가지 조건을 확인하고 각 경우에 다른 값을 표시하는 열을 추가해 보겠습니다(예: 숫자 1 и 2). 어떤 조건도 충족되지 않으면 출력 null로:

파워 쿼리에서 플로팅 프래그먼트 가져오기

클릭 후 OK 우리는 다음 그림을 얻습니다:

파워 쿼리에서 플로팅 프래그먼트 가져오기

이제 탭으로 이동합니다. 변환 그리고 팀을 선택 채우기 – 아래로 (변형 – 채우기 – 아래로) – 우리의 XNUMX과 XNUMX는 열을 확장합니다:

파워 쿼리에서 플로팅 프래그먼트 가져오기

그러면 짐작할 수 있듯이 조건부 열의 단위를 간단히 필터링할 수 있습니다. 여기에 우리가 탐내는 데이터가 있습니다.

파워 쿼리에서 플로팅 프래그먼트 가져오기

남은 것은 명령을 사용하여 첫 번째 줄을 헤더로 올리는 것입니다. 첫 번째 줄을 헤더로 사용(홈 – 첫 번째 행을 헤더로 사용) 헤더를 마우스 오른쪽 버튼으로 클릭하고 명령을 선택하여 불필요한 조건부 열을 제거하십시오. 열 삭제 (열 삭제):

문제 해결됨. 이제 소스 텍스트 파일의 데이터를 변경할 때 쿼리는 이제 필요한 데이터의 "부동" 조각의 시작과 끝을 독립적으로 결정하고 매번 정확한 줄 수를 가져옵니다. 물론 이 접근 방식은 TXT 파일이 아닌 XLSX를 가져오는 경우와 명령을 사용하여 폴더에서 모든 파일을 한 번에 가져올 때도 작동합니다. 데이터 – 데이터 가져오기 – 파일에서 – 폴더에서 (데이터 — 데이터 가져오기 — 파일에서 — 폴더에서).

  • 파워 쿼리를 사용하여 다른 파일에서 테이블 어셈블
  • 매크로 및 파워 쿼리를 사용하여 플랫으로 크로스탭 재설계
  • 파워 쿼리에서 프로젝트 간트 차트 작성

댓글을 남겨주세요.