본문 바로가기

Power Query

파워쿼리 M 구성요소 List에 대해서 (2부)

{“담당자”,”가격”,1,6,true,#date(2020,2,1)}

이렇게 표현식을 구성하였다고 하면 웬지 우리는 이거슨 안될 것 같다는 생각이 들지도 모릅니다. 이러한 인식의 근간은 바로 정리 강박감이라고 말 할 수 있을 것 입니다. 웬지 정리가 되어 있는 않는 나열이고 이러한 것은 허용이 되지 않을 것 같다는 만연한 뇌피셜이 작동되지 않으십니까? 애석하게도 이러한 표현도 파워쿼리의 리스트에서는 별다른 문제가 없는 아주 정상적인 표현 방식 입니다. 그렇다면 다음은 어떨까요?

{{“가격”,”제품명”,”카테고리”},{200,”product A,{“가전”,”식품”}}}

점점 더 복잡계로 나를 이끌고 있구나 하는 불길한 예감이 드시는 분들이 많으시죠 ^^

복잡하게 구성은 되어 있는 것 같지만 정상적인 표현 방법입니다. 여러분들은 제가 구조적인 데이터 표현 방법이라고 했던 말을 기억 하시나요? 그렇습니다. 파워쿼리의 리스트는 엑셀의 데이터 형식과는 별도로 집합적인 개념의 요소도 데이터 소스로 인식 시키고 활용 할 수 있습니다. 앞에서도 언급했던 것과 같이 엑셀은 최소 단위인 셀을 기반으로 모든 것을 시작하기 때문에 우리가 어떤 수식을 적용하는 것도 하나의 셀에 적용하고 그 수식을 다른 셀에도 전파하게 됩니다. 그러다 보니 당연히 셀 주소라는 개념을 부득이 하게 도입 할 수 밖에 없게 되고 이러한 하나 이상의 셀을 보다 조직적으로 관리 하는 것이 더 편리함을 주는 경우도 있기 때문에 범위라는 개념개념부터 테이블()라고 하는 기능까지 확대가 되어갔던 것 입니다.

그러나 파워쿼리에서는 셀의 개념이 없습니다. 줄의 번호는 표시를 해주는 정도의 매너는 지키고 있지만 이 줄의 요소로 데이터를 가져오거나 변환시키는 기능은 메뉴에서 찾아 볼래야 볼 수가 없습니다.

이렇게 엑셀의 하나 이상의 셀을 묶어서 테이블, 리스트, 레코드와 같이 묶음으로 처리는 할때의 장점과 단점이 분명히 존재 하게 됩니다. 따라서, 파워쿼리의 기능들은 기본적으로 여러 묶음으로 처리 할 때의 장점을 최대화 하는 기능과 단점을 보완시키는 기능들로 나눌수가 있는 것 입니다.

그중에서도 리스트는 단점을 보완하기 위한 방법이기 때문에 그런 단점이 부각되지 않는 상황에서는 굳이 등장 할 필요가 없는 것 입니다. , 이말은 장점을 극대화 시키는 기능들에 비해서는 상대적으로 그 쓰임새가 자주 일어나지는 않는 다는 것을 의미합니다.

하지만, 단점을 보완하는 기술은 이렇게만 처리를 해야 하니 이 기능과 개념을 모른다고 하면 멀리 돌아가는 방법을 찾던가 아니면 포기를 해야 한다는 말의 반증이기도 한 것입니다.

자 다음과 같은 목록의 증가를 필요로 하는 경우 즉 {1,2,3,4,5,6,7,8,9,10} 같은 리스트를 작성 한한다 했을 때 간단하게는 1부터 10까지 목록이 증가한다고 할 수 있습니다. 이런 표현식이 있다면 사용자의 입장에서는 보다 편리함을 느끼게 될 것입니다. 그래서 이런 경우에 쓰는 표현 식이 바로 “..” 입니다.

{1..10}

중간 생략과 같은 의미 인것이죠.

따라서 {-2..3} {-2,-1,0,1,2,3}과 같은 의미를 나타내게 되는 것 입니다. 또한 다음과 같은 & 연산자도 사용 할 수 있습니다.

{1,2} & {3,4} ({1,2,3,4}와 동일)

또한 비교 연산도 가능 합니다.

{1,2}={1,2}  => true

{2,4}<>{2,4}  => false

* 주의

크거나 작은 (>,<)과 같은 비교 연산은 지원하지 않습니다.