콘텐츠로 이동

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에 표시되는 그대로 입력하십시오.

대괄호 안의 인수는 선택 사항입니다.

=PLAIDXL.LIST_PROJECTS([horizontal])

열 수 있는 프로젝트의 이름을 이름순으로 나열합니다.

  • horizontal — 행 방향으로 나열하려면 TRUE입니다. 기본값은 열 방향인 FALSE입니다.

=PLAIDXL.TABLE.TBL_LIST([project_id], [horizontal])

프로젝트에 있는 테이블의 이름을 이름순으로 나열합니다.

  • project_id — 읽을 프로젝트입니다. 기본값은 작업 창에서 선택한 프로젝트입니다.
  • horizontal — 행 방향으로 나열하려면 TRUE입니다. 기본값은 열 방향인 FALSE입니다.

=PLAIDXL.TABLE.GET_COLUMNS(table_name, [column_filter], [orientation])

선택한 프로젝트에 있는 테이블의 열 이름을 나열합니다.

  • table_name — PlaidCloud에서의 테이블 이름입니다.
  • column_filter — "text"와 같은 데이터 형식으로, 해당 형식의 열만 나열합니다. 생략하면 모든 열을 나열합니다.
  • orientation — 열 방향은 "vertical"(기본값), 행 방향은 "horizontal"입니다.

=PLAIDXL.DIMENSION.DIM_LIST([project_id], [horizontal])

프로젝트에 있는 차원의 이름을 나열합니다.

  • project_id — 읽을 프로젝트입니다. 기본값은 작업 창에서 선택한 프로젝트입니다.
  • horizontal — 행 방향으로 나열하려면 TRUE입니다. 기본값은 열 방향인 FALSE입니다.

=PLAIDXL.TABLE.GET_TABLE(table_name, [project_id], [limit])

테이블의 행을 머리글 행과 함께 반환하며, 수식이 있는 셀에서부터 펼쳐집니다. 빈 값은 빈 셀로 반환됩니다.

  • table_name — PlaidCloud에서의 테이블 이름입니다.
  • project_id — 읽을 프로젝트입니다. 기본값은 작업 창에서 선택한 프로젝트입니다.
  • limit — 반환할 최대 행 수입니다. 기본값은 머리글 행 아래에 워크시트가 담을 수 있는 최대치인 1,048,575입니다.

GET_TABLE은 모든 열을 반환합니다. 열을 선택하거나 행을 필터링하려면 대신 작업 창에서 테이블을 가져오십시오.

=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는 시작 노드와 그 자식을 반환합니다. 생략하면 모든 세대를 반환합니다.

=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 열이 차원에 연결된 테이블을 사용합니다. 자신의 테이블에 있는 열 이름을 사용하십시오.

=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에 대한 총수익이 표시됩니다.

=PLAIDXL.CELLS(table, measures, [measure_type], node, [node], ...)

CELL과 같지만 여러 측정값을 한 번에 처리합니다. 나열한 순서대로 측정값마다 숫자 하나씩을 열 방향으로 반환합니다.

D1:F1 revenue | cost | units
D2 =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에 전달합니다. 참조할 셀에 두면 다른 기간으로 바꾸는 것과 같은 변경 하나로 이를 사용하는 모든 수식이 업데이트됩니다.

=PLAIDXL.REPR.TABLE_REPR(table_name)

CELL과 CELLS가 읽을 테이블로, 선택한 프로젝트에서의 이름으로 지정합니다.

=PLAIDXL.REPR.MEASURE(column_name)

CELL이 집계하는 숫자 열입니다.

=PLAIDXL.REPR.MEASURES(column_names)

CELLS에 사용할 여러 측정값 열로, 열 이름이 들어 있는 셀 범위에서 가져옵니다. 결과는 열마다 한 셀씩 펼쳐지며, D2#과 같은 펼침 연산자로 CELLS에 전달합니다.

=PLAIDXL.REPR.MEASURE_TYPE(agg_function)

측정값을 집계하는 방식입니다. agg_function은 다음 중 하나이며 소문자로 입력합니다.

값 반환 값
sum 합계(측정 유형을 전달하지 않았을 때의 기본값)
mean 평균
median 중앙값
min 최솟값
max 최댓값
std 표준 편차
var 분산

=PLAIDXL.REPR.DIMENSION_REPR(dimension_name, start_node)

CELL과 CELLS에 사용하는 필터입니다. 필터링할 열마다 하나씩 전달합니다.

  • dimension_name — 테이블에 있는 열의 이름으로, "Region"과 같이 차원의 값을 담고 있는 열입니다. 열 이름과 정확히 일치해야 하며, 테이블에 없는 열이면 오류가 반환됩니다.
  • start_node — 롤업할 노드로, 예를 들어 "EMEA"입니다. 차원에 연결되지 않은 열에서는 일치시킬 값입니다.

노드에 셀을 참조하면 그리드를 만들 수 있습니다. =PLAIDXL.REPR.DIMENSION_REPR("Region", $A7)처럼 사용합니다. 앞뒤 공백은 무시되므로 DRILL이 배치한 들여쓰기된 노드 이름을 가리켜도 됩니다.

=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을 사용하십시오.