본문 바로가기
Application/Excel

엑셀 vlookup처럼 다수 결과 받기

by NAMP 2016. 3. 7.

엑셀 vlookup처럼 다수 결과 받기

formala

=INDEX($C:$C, SMALL(IF($E2=$B:$B, ROW($B:$B)-MIN(ROW($B:$B))+1, ""), COLUMN(A2)))

배열 수식 만들기

  1. 수식 입력줄에 수식을 복사(Ctrl + c), 붙여넣기(Ctrl + v)한다.
  2. Ctrl + Shift + Enter 키를 누른다.

#num 에러 제거

=IFERROR(array_formula, "")

array_formula 자리에 원래 수식을 입력합니다.

=IFERROR(INDEX($C:$C, SMALL(IF($E2=$B:$B, ROW($B:$B), ""), COLUMN(A2))),"")

num 제거

배열 수식

조건에 맞는 셀을 찾습니다. $E2=$B:$B B열에서 E2와 같은 값을 찾습니다. 같은 값을 찾으면 ROW($B:$B) 행 값을 반환합니다.

뒤에 -MIN(ROW($B:$B))+1 는 상단에 있는 공백을 제외하기 위해 사용합니다. 데이터만 포함하고 있는 열이라 가정하고, 해당 내용은 제외하였습니다.

SMALL(IF($E2=$B:$B, ROW($B:$B), ""), COLUMN(A1))

조건에 맞는 데이터의 행 값을 얻어 옵니다. E2인 과 조건을 비교한 결과는 {FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, …} 입니다.

SMALL(IF({FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, ...},{1,2,3,4,5, ... },""), COLUMN(A1))

IF 조건에 따라, TRUE 인 것만 행 값을 갖고 나머지는 ""로 변환됩니다.

SMALL({"", 2,"","", 5, ...}), COLUMN(A1))

SMALL
SMALL 함수를 사용하여 하나씩 얻어옵니다.

COLUMN(A1) 은 1을 반환하게 되고, {"", 2,"","", 5, ...} 이 중에서 가장 작은 것들중에 1번째 값을 반환합니다. → 2

따라서, INDEX($C:$C, 2) 가 실행되어, 1500의 값을 얻게 됩니다.

참고

tags: 엑셀, excel, array, formula

댓글