A | B | C | |
1 | 목록1 | 목록2 | 값 |
2 | 가 | 1 | a |
3 | 나 | 2 | b |
4 | 다 | 3 | c |
5 | 라 | 4 | d |
6 | 마 | 5 | e |
7 | 바 | 6 | f |
8 | 사 | 7 | g |
9 | 아 | 8 | h |
10 | 아 | 9 | i |
11 | 사 | 10 | j |
12 | 바 | 11 | k |
13 | 마 | 12 | l |
14 | 라 | 13 | m |
15 | 다 | 14 | n |
16 | 나 | 15 | o |
17 | 가 | 16 | p |
위와 같은 목록에서
=VLOOKUP("아",$A$1:$C$17,3,FALSE)
를 하면 값은 h 가 출력됩니다.
하지만 값 열의 i의 값을 불러올 수는 없습니다.
하지만 목록1과 목록2에서 조건을 주어 값 열의 데이터를 원하는 것으로
불러올 수는 있습니다
목록1 | 목록2 | 값 |
가 | 1 | a |
가 | 16 | p |
a 와 p의 값의 수식은
=INDIRECT("C"&SUMPRODUCT(($B$2:$B$17=F2)*($C$2:$C$17=G2)*(ROW($D$2:$D$17))))
와
=INDIRECT("C"&SUMPRODUCT(($B$2:$B$17=F3)*($C$2:$C$17=G3)*(ROW($D$2:$D$17))))
입니다
여기서 수식 설명입니다
SUMPRODUCT(($B$2:$B$17=F3)*($C$2:$C$17=G3)*(ROW($D$2:$D$17)))
에서
$B$2:$B$17=F2 는 "가" 일 때만
1의 값을 나머지는 0의 값을 가집니다
$C$2:$C$17=G2 는 1 일 때만 1의 값을 가지고 나머지는 0을 가집니다
($B$2:$B$17=F2)*($C$2:$C$17=G2)
의 값은
1 | 1 | 1 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
0 | 0 | 0 |
1 | 0 | 0 |
에서 2번째 열의 값으로 배열형태를 취합니다
ROW($C$2:$C$17)
는 각각의 셀의 행번호이고
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
의 값으로 배열의 형태를 취합니다
여기서
sumproduct 함수의 값은
위의 두 수식에서
각각 2와 17을 가집니다
그리고
마지막으로 indirect 함수를 적용합니다
c 열에서 값을 불러오므로
=Indirect("C"&
까지 해서 열의 값을 지정하고 행의 값은 위의 Sumproduct 함수의 결과값으로 지정하면
위의 수식은 각각
=Indirect("C2")
=Indirect("C17")
이 됩니다
최종적으로
첫번째 수식=a
두번째 수식=p
의 값을 출력합니다
'excel' 카테고리의 다른 글
사용자 정의 함수 사용하기 (0) | 2008.11.11 |
---|---|
[함수]문자열자르기 - SEARCH (0) | 2008.11.11 |
[함수]파일 및 시트명 (0) | 2008.09.30 |
[함수]엑셀함수 (0) | 2008.09.30 |
[함수]indirect - 문자열을 참조로 사용할 때 (0) | 2008.09.25 |