LET함수= LET ( 이름1, 값1, [이름2], [값2], … , 계산식 )
-수식에 이름 할당
ex) =LET(국가번호, TEXTBEFORE(I10:I17," "),
국가,XLOOKUP(국가번호, M10:M15,N10:N15), 국가)
-이름1: 국가번호, 값1: TEXTBEFORE(I10:I17," "), 이름2: 국가, 값2:XLOOKUP(국가번호, M10:M15,N10:N15), 계산식: 국가
*주의: 이름에 큰 따옴표 붙이면 안 됨
LAMBDA함수 = LAMBDA ( 인수1, [인수2], … , 수식 )
-나만의 함수 만들기
ex) =LAMBDA(값1,값2,값1+값2)
-수식 탭- 이름관리자- 새 항목- 참조 대상: =LAMBDA(값1,값2,값1+값2)
*웹버전에서는 수식 자동완성 안 되더라도 수식 적용 잘 됨
TEXT함수= TEXT ( 값, 표시형식 )
-셀의 값을 사용자 지정 형식으로 텍스트로 변환
ex) TEXT(C10,"yyyy-mm-dd (aaa)"
ex) TEXT(C14,"#,##0"
ex) =LAMBDA(연락처, TEXT(연락처,"000-0000-0000"))
TEXTSPILT함수= TEXTSPLIT(텍스트, 열구분자, [행구분자], [빈칸무시], [일치옵션], [기본값] )
-문장을 지정한 구분기호로 분할
*동적 배열 함수는 드래그로 자동채우기, 더블클릭으로 자동채우기X
TEXTJOIN함수= TEXTJOIN(구분기호, 빈 셀 무시, 범위1)
-범위의 문장을 구분기호로 나눠 한 문장으로 결합
ex) TEXTSPLIT(TEXTJOIN("/", TRUE,B10:B15),">","/")
-텍스트는 TEXTJOIN("/", TRUE,B10:B15), 열구분자는 >, 행구분자는 /
IFERROR함수=IFERROR(수식, 오류 시 반환값)
-오류가 발생할 경우 지정한 값을 대체하여 반환
ex) =IFERROR(TEXTSPLIT(TEXTJOIN("/", TRUE,B10:B16),">","/"),"")
*함수 이름에 "TEXT"가 들어간 모든 함수는 결과값으로 '문자 데이터'를 반환
*문자는 왼쪽 정렬, 숫자는 오른쪽 정렬
해결방법: 곱하기 1과 IFERROR
=IFERROR(TEXTSPLIT(TEXTJOIN("/",TRUE,G10:G15),":","/")*1,TEXTSPLIT(TEXTJOIN("/",TRUE,G10:G15),":","/"))
-IFERROR함수 사용해서 *1을 했을 때 숫자는 잘 출력됨, 그러나 오류 시에는(문자일 경우) 그대로 출력하도록 함
엑셀 배열 계산
-엑셀에서 논리(TRUE, FALSE)는 각각 TRUE = 1, FALSE = 0 으로 계산
- ① 모든 조건을 만족(AND) → 곱셈 / ② 둘 중 하나라도 만족(OR) → 덧셈
ex) =FILTER(K10:M20,(K10:K20=O8)*(M10:M20>=Q8))
TAKE함수= TAKE ( 범위, 추출할행수, [추출할열수] )
-범위에서 지정한 수의 행이나 열 추출
-행/열 개수를 음수로 입력하면 범위의 아래, 오른쪽에서 데이터 추출
ex) =TAKE(범위, 3) : 상위 3개 불러오기, =TAKE(범위, -3): 하위 3개 불러오기
DROP 함수= DROP ( 범위, 제거할행수, [제거할열수] )
-범위에서 지정한 개수의 행이나 열을 제거한 결과 반환
ex) =DROP(B10:C20,-1) : 하위 행 제거
HSTACK함수 = HSTACK ( 범위1, [범위2], … )
- 여러 범위를 가로로 결합하여 하나의 큰 배열을 만들어줌
(M365에서만 가능) GROUPBY 함수 =GROUPBY(행영역, 값영역, 함수, [머리글여부])
-데이터를 그룹화하여 집계된 요약 보고서 반환
ex) GROUPBY(K10:K24,M10:M24,SUM)
*풀이
=LET(구분범위,K10:K24,
금액범위,M10:M24,
구분목록, UNIQUE(구분범위),
집계범위,SUMIF(구분범위,구분목록,금액범위),
HSTACK(구분목록, 집계범위))
이름값 1, 값1
이름값2, 값2
이름값3= 구분목록, 값3= 구분범위의 고유값만 추출
이름값4= 집계범위, 값4= SUMIF(범위, 조건은 구분범위의 고유값만 추출한 구분목록, 합계는 금액범위
출력값: HSTACK(고유값인 구분목록, 집계범위)
*Ctrl+Shift+방향키: 인접 범위 선택
*Ctrl+백스페이스 : 수식 편집 셀로 이동
*SUMIF와 같이 인수를 '범위'로 받아오는 함수에는 CHOOSECOLS(배열)가 아닌 INDEX 함수 사용해야 함
INDEX함수=INDEX(범위, 행번호, [열번호],[배열번호])
-범위에서 저장한 위치의 값 반환
ex) =MYREPORT(INDEX(N3#,,3),INDEX(N3#,,7))