PlaidXL 사용자 지정 함수
PlaidXL은 PlaidCloud 데이터를 셀로 바로 읽어 오는 함수를 Excel에 추가합니다. 셀에 =PLAIDXL.을 입력하면 Excel의 자동 완성에 함수와 각 인수에 대한 간단한 설명이 나열됩니다.
| 그룹 | 함수 | 용도 |
|---|---|---|
| 목록 | LIST_PROJECTS, TABLE.TBL_LIST, TABLE.GET_COLUMNS, DIMENSION.DIM_LIST |
구축에 사용할 수 있는 항목 확인 |
| 테이블 | TABLE.GET_TABLE |
테이블 전체를 범위로 읽기 |
| 계층 | DIMENSION.GET_DIMENSION, DRILL |
차원의 노드를 보고서 행으로 배치 |
| 값 | CELL, CELLS |
노드의 임의 조합에 대한 롤업 값 계산 |
| 구성 요소 | REPR.TABLE_REPR, REPR.MEASURE, REPR.MEASURES, REPR.MEASURE_TYPE, REPR.DIMENSION_REPR, REPR.DRILL_KEY |
CELL, CELLS, DRILL이 사용하는 테이블, 측정값, 집계, 노드, 드릴 깊이 설명 |
사용자 지정 함수로 보고서 작성에서 이 함수들이 함께 동작하는 모습을 볼 수 있습니다.
함수의 작동 방식
섹션 제목: “함수의 작동 방식”- 먼저 로그인합니다. 함수는 PlaidCloud 로그인 정보로 데이터를 읽으므로 사용하기 전에 작업 창에서 로그인하십시오.
- 선택한 프로젝트에서 읽습니다. 모든 함수는 작업 창에서 선택한 프로젝트에서 데이터를 읽습니다.
GET_TABLE,TBL_LIST,DIM_LIST는 선택 항목을 바꾸지 않고 다른 프로젝트를 읽을 수 있도록 선택 사항인 프로젝트 ID도 받습니다. 선택 항목은 열려 있는 모든 통합 문서에서 공유됩니다. - 결과가 펼쳐집니다. 목록이나 테이블을 반환하는 함수는 그 아래(또는 오른쪽) 셀을 채웁니다. 결과를 위한 공간을 비워 두십시오. 방해가 되는 내용이 있으면 Excel에
#SPILL!오류가 표시됩니다. - 변경 사항을 반영하려면 다시 계산합니다. PlaidXL 수식은 인수 중 하나가 바뀔 때 데이터를 다시 가져옵니다. PlaidCloud의 새 데이터나 작업 창에서 선택한 다른 프로젝트를 반영하려면 전체 다시 계산을 강제로 실행하십시오. Windows에서는 Ctrl+Alt+F9를 누릅니다. Refresh All Tables는 수식이 아니라 가져온 테이블을 새로 고칩니다.
- 정확한 이름을 사용합니다. 테이블, 열, 차원, 노드 이름은 PlaidCloud에 표시되는 그대로 입력하십시오.
대괄호 안의 인수는 선택 사항입니다.
LIST_PROJECTS
섹션 제목: “LIST_PROJECTS”=PLAIDXL.LIST_PROJECTS([horizontal])
열 수 있는 프로젝트의 이름을 이름순으로 나열합니다.
horizontal— 행 방향으로 나열하려면TRUE입니다. 기본값은 열 방향인FALSE입니다.
TBL_LIST
섹션 제목: “TBL_LIST”=PLAIDXL.TABLE.TBL_LIST([project_id], [horizontal])
프로젝트에 있는 테이블의 이름을 이름순으로 나열합니다.
project_id— 읽을 프로젝트입니다. 기본값은 작업 창에서 선택한 프로젝트입니다.horizontal— 행 방향으로 나열하려면TRUE입니다. 기본값은 열 방향인FALSE입니다.
GET_COLUMNS
섹션 제목: “GET_COLUMNS”=PLAIDXL.TABLE.GET_COLUMNS(table_name, [column_filter], [orientation])
선택한 프로젝트에 있는 테이블의 열 이름을 나열합니다.
table_name— PlaidCloud에서의 테이블 이름입니다.column_filter—"text"와 같은 데이터 형식으로, 해당 형식의 열만 나열합니다. 생략하면 모든 열을 나열합니다.orientation— 열 방향은"vertical"(기본값), 행 방향은"horizontal"입니다.
DIM_LIST
섹션 제목: “DIM_LIST”=PLAIDXL.DIMENSION.DIM_LIST([project_id], [horizontal])
프로젝트에 있는 차원의 이름을 나열합니다.
project_id— 읽을 프로젝트입니다. 기본값은 작업 창에서 선택한 프로젝트입니다.horizontal— 행 방향으로 나열하려면TRUE입니다. 기본값은 열 방향인FALSE입니다.
테이블
섹션 제목: “테이블”GET_TABLE
섹션 제목: “GET_TABLE”=PLAIDXL.TABLE.GET_TABLE(table_name, [project_id], [limit])
테이블의 행을 머리글 행과 함께 반환하며, 수식이 있는 셀에서부터 펼쳐집니다. 빈 값은 빈 셀로 반환됩니다.
table_name— PlaidCloud에서의 테이블 이름입니다.project_id— 읽을 프로젝트입니다. 기본값은 작업 창에서 선택한 프로젝트입니다.limit— 반환할 최대 행 수입니다. 기본값은 머리글 행 아래에 워크시트가 담을 수 있는 최대치인 1,048,575입니다.
GET_TABLE은 모든 열을 반환합니다. 열을 선택하거나 행을 필터링하려면 대신 작업 창에서 테이블을 가져오십시오.
GET_DIMENSION
섹션 제목: “GET_DIMENSION”=PLAIDXL.DIMENSION.GET_DIMENSION(dimension_name, start_node, [hierarchy], [orientation], [generation_limit])
start_node에서 시작하여 그 하위 노드를 따라 내려가며 차원의 노드를 배치합니다. 각 세대는 부모보다 공백 네 칸 더 들여쓰기되며, Excel 윤곽 그룹으로 각 수준을 접고 펼칠 수 있습니다.
dimension_name— 차원의 이름 또는 프로젝트 내 경로입니다.start_node— 시작할 노드로, 예를 들어 차원의 루트입니다.hierarchy— 따라갈 대체 계층입니다. 기본값은"main"입니다.orientation— 노드를 열 방향으로 나열하려면"vertical"(기본값), 행 방향으로 나열하려면"horizontal"입니다.generation_limit— 반환할 세대 수로,start_node를 첫 번째로 셉니다.2는 시작 노드와 그 자식을 반환합니다. 생략하면 모든 세대를 반환합니다.
DRILL
섹션 제목: “DRILL”=PLAIDXL.DRILL(dimension_name, start_node, drill_key, [hierarchy])
start_node와 drill_key가 요청하는 그 아래의 노드를 열 방향으로 반환하며, 세대별로 들여쓰기되고 Excel 윤곽으로 그룹화됩니다.
dimension_name— 차원의 이름 또는 프로젝트 내 경로입니다.start_node— 드릴을 시작할 노드입니다.drill_key— 드릴 깊이로,DRILL_KEY에서 만듭니다. 모든 하위 노드, 리프만, 또는 지정한 수준 수입니다.hierarchy— 따라갈 대체 계층입니다. 기본값은"main"입니다.
예를 들어 =PLAIDXL.DRILL("Region", "Total", PLAIDXL.REPR.DRILL_KEY("leaves"))는 Total과 그 아래의 모든 리프 리전을 나열합니다.
리본의 드릴 명령은 수식을 작성하지 않고 두 셀에 입력한 차원과 노드에 대해 같은 작업을 수행합니다.
CELL과 CELLS는 테이블의 숫자 열인 측정값을 하나 이상의 차원에서 선택한 노드로 롤업하여 계산합니다. 각 호출을 보고서의 교차 지점 하나로 생각하십시오. 예를 들어 FY2026의 EMEA에 대한 수익입니다.
교차 지점은 아래의 구성 요소 함수로 설명하며, 보통 각각의 셀에 두었다가 그 셀들을 순서에 관계없이 CELL 또는 CELLS에 전달합니다.
| 인수 | 작성 함수 | 필수 여부 |
|---|---|---|
| 읽을 테이블 | TABLE_REPR |
정확히 하나 |
| 집계할 열 | CELL에는 MEASURE, CELLS에는 MEASURES 또는 여러 MEASURE 셀 |
예 |
| 집계 방식 | MEASURE_TYPE |
아니요 — 기본값은 sum |
| 열에 대한 필터 | DIMENSION_REPR |
최소 하나, 열당 하나 |
각 필터는 테이블의 열과 값을 지정합니다. 해당 열이 PlaidCloud에서 차원에 연결되어 있으면 값은 노드이며, 필터에는 차원의 기본 계층에서 해당 노드로 롤업되는 모든 항목이 포함됩니다. 지리 차원에 연결된 Region 열에서는 노드 EMEA가 그 아래의 모든 국가를 포함합니다. 차원에 연결되지 않은 열에서는 필터가 값과 정확히 일치하는 항목에 적용됩니다.
이 페이지의 예제는 Region 및 Period 열이 차원에 연결된 테이블을 사용합니다. 자신의 테이블에 있는 열 이름을 사용하십시오.
CELL
섹션 제목: “CELL”=PLAIDXL.CELL(table, measure, [measure_type], node, [node], ...)
전달한 모든 노드에 속하는 행에 걸쳐 집계한 측정값을 숫자 하나로 반환합니다.
A1 =PLAIDXL.REPR.TABLE_REPR("Sales")A2 =PLAIDXL.REPR.MEASURE("revenue")A3 =PLAIDXL.REPR.MEASURE_TYPE("sum")A4 =PLAIDXL.REPR.DIMENSION_REPR("Region", "EMEA")A5 =PLAIDXL.REPR.DIMENSION_REPR("Period", "FY2026")B1 =PLAIDXL.CELL(A1, A2, A3, A4, A5)B1에는 FY2026의 EMEA에 대한 총수익이 표시됩니다.
CELLS
섹션 제목: “CELLS”=PLAIDXL.CELLS(table, measures, [measure_type], node, [node], ...)
CELL과 같지만 여러 측정값을 한 번에 처리합니다. 나열한 순서대로 측정값마다 숫자 하나씩을 열 방향으로 반환합니다.
D1:F1 revenue | cost | unitsD2 =PLAIDXL.REPR.MEASURES(D1:F1)B2 =PLAIDXL.CELLS(A1, D2#, A3, A4, A5)D2#은 MEASURES의 펼쳐진 결과 전체를 전달합니다. B2:B4에는 FY2026의 EMEA에 대한 revenue, cost, units가 표시됩니다.
구성 요소
섹션 제목: “구성 요소”이 함수들은 데이터를 직접 읽지 않습니다. 각 함수는 계산의 한 부분을 설명하는 짧은 텍스트를 반환하며, 이를 CELL, CELLS, DRILL에 전달합니다. 참조할 셀에 두면 다른 기간으로 바꾸는 것과 같은 변경 하나로 이를 사용하는 모든 수식이 업데이트됩니다.
TABLE_REPR
섹션 제목: “TABLE_REPR”=PLAIDXL.REPR.TABLE_REPR(table_name)
CELL과 CELLS가 읽을 테이블로, 선택한 프로젝트에서의 이름으로 지정합니다.
MEASURE
섹션 제목: “MEASURE”=PLAIDXL.REPR.MEASURE(column_name)
CELL이 집계하는 숫자 열입니다.
MEASURES
섹션 제목: “MEASURES”=PLAIDXL.REPR.MEASURES(column_names)
CELLS에 사용할 여러 측정값 열로, 열 이름이 들어 있는 셀 범위에서 가져옵니다. 결과는 열마다 한 셀씩 펼쳐지며, D2#과 같은 펼침 연산자로 CELLS에 전달합니다.
MEASURE_TYPE
섹션 제목: “MEASURE_TYPE”=PLAIDXL.REPR.MEASURE_TYPE(agg_function)
측정값을 집계하는 방식입니다. agg_function은 다음 중 하나이며 소문자로 입력합니다.
| 값 | 반환 값 |
|---|---|
sum |
합계(측정 유형을 전달하지 않았을 때의 기본값) |
mean |
평균 |
median |
중앙값 |
min |
최솟값 |
max |
최댓값 |
std |
표준 편차 |
var |
분산 |
DIMENSION_REPR
섹션 제목: “DIMENSION_REPR”=PLAIDXL.REPR.DIMENSION_REPR(dimension_name, start_node)
CELL과 CELLS에 사용하는 필터입니다. 필터링할 열마다 하나씩 전달합니다.
dimension_name— 테이블에 있는 열의 이름으로,"Region"과 같이 차원의 값을 담고 있는 열입니다. 열 이름과 정확히 일치해야 하며, 테이블에 없는 열이면 오류가 반환됩니다.start_node— 롤업할 노드로, 예를 들어"EMEA"입니다. 차원에 연결되지 않은 열에서는 일치시킬 값입니다.
노드에 셀을 참조하면 그리드를 만들 수 있습니다. =PLAIDXL.REPR.DIMENSION_REPR("Region", $A7)처럼 사용합니다. 앞뒤 공백은 무시되므로 DRILL이 배치한 들여쓰기된 노드 이름을 가리켜도 됩니다.
DRILL_KEY
섹션 제목: “DRILL_KEY”=PLAIDXL.REPR.DRILL_KEY(d_key)
DRILL이 시작 노드 아래로 얼마나 내려갈지를 정합니다. d_key는 일반 텍스트입니다.
d_key |
드릴 대상 |
|---|---|
"all" |
모든 하위 노드 |
"leaves" |
리프만 — 아래에 노드가 없는 노드 |
"1 level", "2 levels", … |
지정한 세대 수만큼 아래 |
숫자는 "two levels"가 아니라 "2 levels"처럼 숫자로 씁니다. 앞에 붙은 drill은 무시되므로 "drill 2 levels"도 사용할 수 있습니다.
두 수준 이상에서는 DRILL이 각 노드를 부모 바로 아래에 두지 않고 한 세대씩, 즉 모든 자식을 나열한 다음 모든 손자를 나열합니다. 중첩된 레이아웃이 필요하면 "all"을 사용하거나 generation_limit와 함께 GET_DIMENSION을 사용하십시오.
관련 항목
섹션 제목: “관련 항목”- 사용자 지정 함수로 보고서 작성 — 한쪽에는 계층, 위쪽에는 값
- 테이블 및 차원 사용 — 함수가 읽을 프로젝트 선택
- 차원 사용 — 기본 계층과 대체 계층, 노드가 롤업되는 방식
- 차원 계층 설계 — 보고서가 롤업되는 계층 구축