20211212 2110
REF
[1] "https://docs.microsoft.com/en-us/power-bi/create-reports/desktop-add-custom-column"
[2]
동기
Table. AddColumn 함수를 이해해보자
분석
Advanced Editor를 열어보면 아래와 같은 코드가 보인다.
분석해보면...
(1) 3~5줄을 보면 ; 등호 왼쪽은 "테이블" 이다.
- Source, #"Changed Type", "Added Custom", #Added Custom1"은 사실은 테이블이다.
(2) Table.AddColumn함수의 첫번째 인수는 칼럼을 추가할 "테이블"인데 여기에 #"Table1"을 써야하지 않을까라는 생각이 드는데, 그렇게 하면 아래와 같은 오류가 발생한다.
예를 들어 5줄에서 첫번째 인수를 #"Table1"으로 바꾸면...
⟼ 순환참조 발생
순환참조... 최종적으로 적용될 테이블(여기서는 Table1)을 임시로 사용할 테이블로 사용하면 안되는 듯.. 임시테이블을 이용해서 작업을 한 뒤, 최종적으로 "in" 뒤에 반환할 테이블을 적어줘야 한다. |
(3) 따라서 우리가 추가할 테이블은 이전에 (임시로) 만들어진 #"Added Custom"테이블이어야 한다.
(4) 최종적으로 반환해야하는 테이블은 #Added Custom1" 테이블이다. ⟼ 이게 Table1이 될 것이다.
만약 "Added Custom" 테이블을 반환하면, 5줄의 명령(zGoodsales 칼럼추가)이 적용안된 테이블이 "Table1"이 될 것이다.
(5) #"~~"은 공백을 포함한 변수를 사용할 때 쓴다. see "https://weneedu.tistory.com/356"
- "~~"은 문자열이므로 이와 구별하기 위해 샵(#)을 붙인다.
- 예를 들어 위 코드를 다음과 같이 써도 결과는 동일하다.
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], Changed_Type = Table.TransformColumnTypes(Source,{{"date", type date}, {"salesperson", type text}, {"item", type text}, {"quantity", Int64.Type}}), Add1 = Table.AddColumn(Changed_Type, "zMon", each Date.Month([date])), Add2 = Table.AddColumn(Add1, "zGoodsales", each if [quantity]>10 then "y" else "n") in Add2
'[PA] 업무자동화 > [PQ] Power Query' 카테고리의 다른 글
PQ (table merge) before-after reconciliation 변경 전 후 비교/대사 (0) | 2022.06.02 |
---|---|
PQ Power Query & Power Pivot - Intro 개요 (0) | 2021.12.14 |
XL PowerQuery BI 만들기 (0) | 2021.11.14 |
XL power query - read certain range in external excel file (0) | 2021.11.10 |
XL Table - Query -Pivot 연결 확인 (0) | 2021.10.20 |