첫 번째 VLOOKUP 값만 불러오는 실무 수식 패턴

COUNTIFS VLOOKUP 중복 0 처리로 첫 번째 값만 불러오는 엑셀 수식 완전 정리

엑셀에서 VLOOKUP으로 값을 불러올 때 같은 코드가 여러 번 반복되는 목록이면, 똑같은 값이 줄줄이 반복돼서 분석이나 합계 계산이 꼬이기 쉽습니다. 이 글에서는 COUNTIFSVLOOKUP을 조합해서 첫 번째 행만 VLOOKUP 결과를 표시하고, 나머지 중복 행은 전부 0으로 처리하는 수식 패턴을 정리합니다.

실제 재고·매출 데이터 예제를 기준으로,

  • Quick Fix 한 줄 수식
  • 단일 조건 / 다중 조건(상품코드 + 색상)
  • 0 vs 빈칸의 차이
  • 자주 나오는 오류와 해결법

까지 한 번에 정리해 두면, 이후 비슷한 파일을 만들 때 매번 검색하지 않고 그대로 가져다 쓸 수 있습니다.

Quick Fix: COUNTIFS VLOOKUP 중복 0 처리 핵심 수식

예제 데이터 구조 살펴보기

시트 이름: 판매내역

열 구성:

내용 예시
A 상품코드 P001, P002…
B 수량 1, 3, 5 …
C 단가(첫 번째만 표시) (우리가 계산)
D 금액 =B * C

같은 상품코드(P001)가 여러 줄에 있을 수 있고, 단가 기준표는 오른쪽에 별도 영역으로 둡니다.

단가 기준표 (예: F:G열)

F(상품코드) G(기준단가)
1 상품코드 기준단가
2 P001 10000
3 P002 12000
4 P003 9000

핵심 수식 한 줄로 끝내기

C2 셀에 아래 수식을 입력한 뒤, 필요한 만큼 아래로 채웁니다.

=IF(
   COUNTIFS($A$2:A2, A2) > 1,
   0,
   VLOOKUP(A2, $F$2:$G$4, 2, FALSE)
)

의미 정리:

  • COUNTIFS($A$2:A2, A2) → A2부터 현재 행까지 범위에서 “지금 상품코드(A2)”가 몇 번 나왔는지 센다.
  • 첫 번째 등장: 1, 두 번째: 2, 세 번째: 3 …
  • COUNTIFS(...) > 1 → “이 행은 두 번째 이상 등장한 중복이다”라는 뜻
  • IF( COUNTIFS(...) > 1, 0, VLOOKUP(...) ) → 중복이면 0, 아니면 VLOOKUP 결과(단가)를 표시

따라서 각 상품코드의 첫 행만 단가가 들어가고, 이후 중복 행은 모두 0이 됩니다.

단계별 적용 요약

  1. A열에 상품코드, B열에 수량 입력
  2. 오른쪽 F:G열에 상품코드별 기준 단가 테이블 준비
  3. C2에 위 수식을 입력하고 아래로 복사
  4. D2에는 =B2*C2 입력 후 아래로 복사
  5. SUM(D2:D6) 등으로 합계를 구하면, 각 상품코드당 첫 번째 행만 금액이 반영된 합계를 얻을 수 있음

왜 VLOOKUP만으로는 중복을 제어하기 어려운가

VLOOKUP 기본 동작 원리

VLOOKUP은 “찾을 값(lookup_value)”을 기준으로 참조 범위의 왼쪽 첫 열에서 일치하는 값을 찾은 뒤, 오른쪽 열의 값을 가져오는 함수입니다.

가장 단순한 형태는 아래와 같습니다.

=VLOOKUP(lookup_value, table_array, col_index_num, FALSE)

중요한 특징은:

  • lookup_value가 같은 행이 여러 개 있어도, 항상 “처음 찾은 행”의 값을 가져온다는 것
  • 판매내역처럼 같은 상품코드가 여러 줄 있는 목록에 VLOOKUP을 그냥 쓰면, 각 행마다 동일한 단가가 반복
  • 나중에 합계를 내면 중복된 금액까지 모두 더해지는 문제 발생

COUNTIFS로 “지금이 몇 번째 행인지” 세는 이유

COUNTIFS는 여러 조건을 만족하는 셀의 개수를 세는 함수입니다.

=COUNTIFS(범위1, 조건1, 범위2, 조건2, ...)

여기서는 범위1을 A열의 위에서부터 현재 행까지로 잡고, 조건을 현재 상품코드와 같게 두면

=COUNTIFS($A$2:A2, A2)
  • 첫 등장 행 → 1
  • 두 번째 등장 행 → 2
  • 세 번째 등장 행 → 3 …

이렇게 “현재 행이 몇 번째 등장인지”를 숫자로 판단할 수 있습니다. 이 값을 기준으로

  • 1일 때만 VLOOKUP 결과 사용
  • 2 이상이면 0(또는 빈칸)으로 처리

라는 조건을 걸면 중복 통제가 가능합니다.

실무 예제 1: 상품코드별 첫 번째 단가만 가져오고 나머지는 0 처리

샘플 데이터 표 만들기

① 판매내역 (A:D열)

A(상품코드) B(수량) C(단가_첫행만) D(금액)
1 상품코드 수량 단가(첫 행만) 금액
2 P001 3 (수식) (수식)
3 P001 2 (수식) (수식)
4 P002 5 (수식) (수식)
5 P001 1 (수식) (수식)
6 P003 4 (수식) (수식)

② 단가 기준표 (F:G열)

F(상품코드) G(기준단가)
1 상품코드 기준단가
2 P001 10000
3 P002 12000
4 P003 9000

COUNTIFS + VLOOKUP 수식 적용

  1. C2 셀 클릭
  2. 아래 수식 입력:
=IF(
   COUNTIFS($A$2:A2, A2) > 1,
   0,
   VLOOKUP(A2, $F$2:$G$4, 2, FALSE)
)
  1. Enter 후, C2를 아래 행까지 자동 채우기

예상 결과:

A(상품코드) B(수량) C(단가_첫행만) 설명
2 P001 3 10000 P001 첫 등장 → 단가
3 P001 2 0 P001 두 번째 → 0
4 P002 5 12000 P002 첫 등장 → 단가
5 P001 1 0 P001 세 번째 → 0
6 P003 4 9000 P003 첫 등장 → 단가

D2에는 금액 수식을 입력합니다.

=B2*C2

아래로 복사하면, P001 단가는 맨 윗줄 한 번만 반영되고 나머지는 모두 0이라 전체 합계는 “상품코드별로 단 한 번만 단가를 적용한 금액”이 됩니다.

실무 예제 2: 상품코드 + 색상 조합 기준으로 중복을 0 처리

다중 조건 COUNTIFS 패턴

데이터 구조:

내용
A 상품코드
B 색상
C 수량
D 단가(첫 조합만)
E 금액

“상품코드 + 색상 조합”이 처음 등장한 행만 단가를 가져오고, 나머지 중복 조합은 0으로 처리하려면 COUNTIFS에 조건을 두 개 넣습니다.

D2 수식 예:

=IF(
   COUNTIFS($A$2:A2, A2, $B$2:B2, B2) > 1,
   0,
   VLOOKUP(A2, $H$2:$I$10, 2, FALSE)
)

색상별 첫 주문만 집계하는 예제

A(코드) B(색상) C(수량) D(단가_첫 조합만) E(금액)
2 P001 BLACK 3 (수식) (수식)
3 P001 BLACK 1 (수식) (수식)
4 P001 WHITE 2 (수식) (수식)
5 P001 BLACK 4 (수식) (수식)

위 수식을 적용하면 P001+BLACK 조합은 2행에서만 단가가 들어가고 3·5행은 0, P001+WHITE는 4행에만 단가가 들어가 색상 조합별로 첫 주문만 금액이 반영됩니다.

빈칸 “” vs 0, 무엇을 써야 할까?

0을 쓰면 좋은 경우

  • 이 열을 계산(합계, 평균, 다른 수식 등)에 그대로 활용할 때
  • 중복이 0으로 명확하게 보이는 게 좋을 때
  • 피벗테이블에서 값이 있는 행만 필터링하지 않고 바로 합계를 쓰고 싶을 때

핵심 패턴:

=IF(
   COUNTIFS($A$2:A2, A2) > 1,
   0,
   VLOOKUP(A2, $F$2:$G$6, 2, FALSE)
)

빈칸이 더 깔끔한 경우

보고용 표처럼 눈에 보이는 깔끔함이 중요한 시트에서는 0이 아니라 빈칸이 더 좋을 때가 많습니다.

=IF(
   COUNTIFS($A$2:A2, A2) > 1,
   "",
   VLOOKUP(A2, $F$2:$G$6, 2, FALSE)
)

자주 나오는 오류와 Troubleshooting 표

증상 원인 해결법
모든 행이 0으로 나오거나, 모두 단가가 채워짐 COUNTIFS 범위 고정이 잘못됨 첫 번째 범위는 $A$2:A2 형식으로 시작행만 절대참조
첫 번째 행도 0이 되어버림 > 1 대신 >= 1 사용 중복 조건은 > 1로 사용
VLOOKUP에서 #N/A 에러 발생 기준표에 없는 상품코드, 공백/서식 차이 기준표 데이터 확인, 공백 제거, 숫자/텍스트 형식 통일
데이터가 많아질수록 파일이 느려짐 수천 건 이상에서 COUNTIFS가 많이 반복 피벗테이블, 중복 제거 기능, Power Query, UNIQUE 함수 등과 병행
다중 조건 COUNTIFS 결과가 원하는 것과 다르게 나옴 범위와 조건값 범위가 섞이거나 길이가 다름 COUNTIFS 각 범위의 시작행·끝행이 같은지 재확인

다른 방법과의 비교: 중복 제거 기능, 피벗, UNIQUE 함수

COUNTIFS + VLOOKUP 패턴은 원본 데이터를 그대로 두고, 수식으로만 중복을 제어한다는 점이 강점입니다. 하지만 항상 이 방법이 최선은 아닙니다.

데이터 탭의 ‘중복된 항목 제거’

  • 원본 데이터에서 중복 행을 직접 삭제
  • 매우 빠르고 직관적이지만, 원본 로그를 유지해야 하는 경우에는 부적합

피벗테이블

  • 상품코드별, 코드+색상별 집계 결과만 필요하다면 피벗테이블이 더 간단
  • 행 필드에 상품코드와 색상을 넣고 값 필드에 수량/금액을 설정하면 중복 없이 합계 가능

UNIQUE 함수

  • =UNIQUE(범위)로 고유값 목록만 추출
  • 이 고유값 목록을 기준으로 VLOOKUP이나 XLOOKUP을 적용하면 중복 없는 결과 테이블을 만들 수 있음
  • 단, 버전 호환성 문제로 모든 사용자에게 배포하는 파일이라면 COUNTIFS 패턴이 더 안전

마무리 정리 & 함께 보면 좋은 글

  • VLOOKUP만 쓰면 중복된 키가 있을 때 모든 행에 같은 값이 반복됨
  • COUNTIFS로 “현재 행이 몇 번째 등장인지”를 세어 1일 때만 VLOOKUP 실행, 2 이상이면 0 또는 빈칸 처리
  • 다중 조건이 필요할 때는 COUNTIFS에 조건을 늘려 사용
  • 0을 쓰면 합계·평균 등 숫자 계산에 유리, 빈칸은 보고용 표에서 더 깔끔
  • 데이터가 매우 클 때는 피벗, 중복 제거, UNIQUE, Power Query 등과 병행

함께 보면 좋은 exceljump 글:

Leave a Reply

Your email address will not be published. Required fields are marked *