오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
실무자 기초 강의

고객 방문율 분석기법

오빠두엑셀 by 오빠두엑셀
  • 학습시간 15분
  • 난이도 중급
  • 작성일 2019.05.21

매출 원인분석의 핵심 지표는?! - 고객 방문율/방문주기 구하기

이 강의에서는 엑셀의 고객 방문 데이터로부터 3개월 내 재방문율을 산출하고, 분기별 추이를 차트로 시각화하는 분석 흐름을 다룹니다. LOOKUP 함수로 두 시트의 고객 정보를 자동으로 연결한 뒤, 피벗테이블의 그룹화와 상위 행 합계비율 옵션을 활용해 매출 원인 분석에 필요한 핵심 지표를 안정적으로 산출하는 방법까지 단계별로 정리합니다.

고객 방문율 분석기법
DOWNLOADS

실습자료를 준비했어요

수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇

실습 가이드

자료 편집을 효율적으로 진행하기 위해 데이터 범위를 표로 변환합니다. [고객방문현황] 시트와 [고객정보] 시트에 입력된 데이터 범위를 각각 표로 변환하겠습니다.

데이터 범위를 선택한 뒤 키보드의 Ctrl + T 를 눌러 범위를 표로 변환합니다. 이후 상단의 [표 도구] – [디자인] 탭에서 [표 이름] 값을 각각 ‘tbl방문현황’, ‘tbl고객정보’로 변경합니다.

  • [고객방문현황] 시트 : tbl방문현황
  • [고객정보] 시트 : tbl고객정보

범위를 표로 변환

[고객방문현황] 시트의 자료에는 ‘고객ID’와 ‘방문일’만 입력되어 있습니다. 따라서 [고객정보] 시트의 이름·성별·나이 정보를 불러오기 위해 LOOKUP 함수를 사용합니다.

LOOKUP 함수는 VLOOKUP 함수와 동일한 기능을 수행하며, 표 기능과 함께 사용할 때 매우 편리하게 값을 조회할 수 있습니다. 다만 아래 두 가지 주의사항이 있으므로 사용 시 유의해야 하며, 자세한 내용은 함수 관련 포스트를 참고하세요.


LOOKUP 함수 사용 시 주의사항

  1. 참조하는 범위는 반드시 ‘오름차순’으로 정렬되어 있어야 합니다.
  2. 참조하는 범위에 찾는 값이 없을 경우, LOOKUP 함수는 찾는 값보다 작은 최대값을 반환합니다. (오류값을 반환하지 않습니다.) 따라서 오류 처리가 자동으로 되지 않으므로 사용 시 주의가 필요합니다.

[고객방문현황] 시트에서 [이름], [성별], [나이] 열을 추가한 뒤, 아래 함수를 각 열의 첫 번째 셀에 입력합니다.

  1. 이름 : =LOOKUP([@고객ID],tbl고객정보[고객ID],tbl고객정보[이름])
  2. 성별 : =LOOKUP([@고객ID],tbl고객정보[고객ID],tbl고객정보[성별])
  3. 나이 : =LOOKUP([@고객ID],tbl고객정보[고객ID],tbl고객정보[나이])

LOOKUP 함수 입력

다음으로 고객별 최근 방문일을 계산합니다. 고객마다 첫 방문 여부를 확인하고, 첫 방문이 아닐 경우 가장 마지막으로 방문한 날짜를 산출합니다.

고객별 최근 방문일을 계산하기 위해 이전 강의에서 다룬 VLOOKUP 마지막 값 찾기 공식을 활용합니다. 공식에 대한 자세한 설명은 관련 포스트를 참고하세요.


[고객방문현황] 시트에서 ‘최근방문일’ 열을 추가한 뒤, 아래 공식을 첫 번째 셀에 입력합니다.

=IFERROR(LOOKUP(2,1/($B$1:B1=B2),$A$1:A1),"첫방문")

고객 마지막 방문일 계산

함수를 입력하면 각 고객별로 첫 방문 여부 또는 가장 최근의 방문일이 자동으로 계산됩니다. 이후 최근 방문일을 ‘날짜’ 형식으로 표시하기 위해, ‘최근방문일’ 범위를 전체 선택한 뒤 단축키 Ctrl + 1 키를 눌러 사용자 지정 서식을 아래와 같이 변경합니다.

YYYY-MM-DD

사용자 지정서식 날짜 형태

고객별 최근 방문일이 계산되었으므로, 이제 각 고객의 [현재 방문한 날짜] – [최근방문일]을 계산하여 고객의 방문 주기를 구할 수 있습니다.

IF 함수와 AND 함수를 함께 사용하여 아래 조건을 모두 만족하는 경우 3개월 이내 재방문으로 표시합니다.

  • 고객이 첫 방문이 아니고
  • [현재 방문한 날짜] – [마지막 방문한 날짜]가 90일 이하인 경우

위 조건을 만족하면 “Y”를, 그렇지 않으면 “N”을 표시하여 3개월 이내 재방문 여부를 구분합니다.

공식의 동작 원리는 영상 강의에서 자세히 설명하였습니다. [고객방문현황] 시트의 표 우측에 ‘3개월 내 재방문여부’ 열을 추가한 뒤, 아래 수식을 첫 셀에 입력합니다.

=IF(AND([@최근방문일]<>"첫방문",IFERROR([@방문일]-[@최근방문일],0)<90),"Y","N")

3개월 내 재방문여부 계산

이로써 고객 방문현황 데이터가 완성되었습니다. 앞선 과정에서 ‘고객ID’를 기준으로 ‘이름/성별/나이’ 정보를 불러오고, 각 고객의 마지막 방문일을 찾아 3개월 내 재방문 여부까지 계산하였습니다.

이제 완성된 데이터 표를 기반으로 피벗테이블을 생성합니다. 표를 선택한 뒤, 키보드 단축키 CtrlNV 를 눌러 피벗테이블을 삽입합니다. 피벗테이블이 생성되면 아래와 같이 각 필드에 값을 끌어다 놓아 설정합니다.

  • 행 : [방문일], [3개월 내 재방문여부]
  • 열 : [나이]
  • 값 : [3개월 내 재방문여부](개수)

피벗테이블 필드 설정

피벗테이블의 행과 열에 각 필드를 배치하였다면, 가독성을 높이기 위해 행과 열의 값을 ‘그룹화’합니다. [방문일] 필드와 [날짜] 필드를 우클릭하여 [그룹]으로 이동한 뒤, 아래와 같이 각 필드를 그룹화합니다.

피벗테이블 필드 그룹화

필드 그룹화가 완료되면 아래와 같이 피벗테이블이 완성됩니다.

피벗테이블 완성

이어서 우측의 [피벗테이블 필드] 중 [값] 필드에서 ‘3개월 내 재방문여부’ 필드를 클릭한 뒤 ‘값 필드 설정’으로 이동합니다. 그리고 [값 표시 형식]에서 ‘상위 행 합계비율’을 선택한 후 확인을 눌러 적용합니다.

피벗테이블 상위행 합계 비율 선택‘상위 행 합계비율’을 적용하면 아래와 같이 각 분기별로 나이대별 고객의 3개월 내 재방문 여부가 % 비율로 구분되어 출력됩니다.

피벗테이블 상위행 합계 비율 완성

완성된 피벗테이블에는 한 가지 문제가 있습니다. 피벗테이블에서 ‘3개월 내 재방문여부’를 필터링하면 출력되는 값이 모두 100%로 변경되는 현상이 발생합니다. 따라서 피벗테이블에서 값만 별도로 추출한 뒤 “Y” 값을 필터링하여 차트를 만듭니다.

피벗테이블에서 ‘연’과 ‘방문일’ 필드를 우클릭한 뒤 [필드 설정]을 클릭합니다. 이후 나타난 팝업창의 [레이아웃 및 인쇄] 탭에서 ‘항목 레이블 반복’ 옵션을 체크하여 각 필드의 레이블 값이 반복되도록 설정합니다.

피벗테이블 항목 레이블 반복

설정이 완료되면 피벗테이블에서 열과 행을 포함하여 값이 표시된 ‘일부 영역’만 복사하여 다른 위치에 붙여넣기 합니다. (*전체 피벗테이블을 복사하면 값이 아닌 피벗테이블 자체가 붙여넣어지므로 ‘반드시’ 피벗테이블의 일부 영역만 복사하여 붙여넣기 해야 합니다.)

피벗테이블 값 붙여넣기

이후 범위를 선택한 상태에서 키보드 단축키 Ctrl + Shift + L 키를 눌러 자동 필터를 적용한 뒤, ‘3개월 내 재방문여부’에서 ‘Y’만 표시되도록 필터링합니다. 이어서 단축키 AltNR 을 눌러 차트를 삽입합니다.

차트삽입

삽입된 차트를 우클릭한 뒤 [차트 종류 변경] – [혼합]으로 이동합니다. 이후 아래와 같이 차트 종류를 설정합니다.

  • 총합계 : [보조축] 꺾은선형 차트
  • 그 외 : [주축] 묶은 세로막대형 차트

차트 종류 변경

마지막으로 기타 차트 옵션을 조정하여 아래와 같이 ‘3개월 내 고객 재방문율’ 차트를 완성합니다. 차트 제작에 대한 자세한 순서는 영상 강의를 참고하세요.

고객 방문율 차트 완성

댓글 41
5 (32개 평가)
창창한하루
창창한하루 2019.12.26 20:51
요식업 종사자입니다. 올해초부터 멤버쉽제도를 도입하면서 고객방문 패턴이 어떻게 변하는지 알아보고 싶었는데 큰 도움이 되었습니다. 좋은 내용 올려주셔서 감사합니다.!!
조용은
조용은 2020.01.07 19:01
첫방문 주기에서 IFERROR(LOOKUP(2,1/($B$1:B1=[@고객ID]),$A$1:A1)이 어떻게 최근 방문일로 나오는지 알수 있을까요?
1/ <- 이 수식이 무슨 의미인가요?
오빠두엑셀
오빠두엑셀 작성자 2020.01.08 01:53
안녕하세요?^-^
LOOKUP 함수는 범위의 맨 밑에서부터 값을 조회합니다. 따라서 최근 방문일을 반환하게 됩니다.
자세한 내용은 아래 링크를 참고해보시겠어요?
https://www.oppadu.com/vlookup-%eb%a7%88%ec%a7%80%eb%a7%89-%ea%b0%92-%ec%b6%9c%eb%a0%a5%ed%95%98%ea%b8%b0/
새하얀아이
새하얀아이 2020.01.20 20:07
완성 파일은 없나요??
오빠두엑셀
오빠두엑셀 작성자 2020.01.20 20:16
안녕하세요! ^-^ 홈페이지를 하나둘씩 수정하고 있습니다. 아직 부족한게 많네요..ㅠ-ㅠ..
페이지를 수정하는 동안 아래 임시 드롭박스 링크를 적어드릴테니 해당 링크로 다운로드 해주시겠어요?
링크 만료일은 1월 26일입니다.^-^
감사합니다.
https://www.dropbox.com/s/0bu5rodspukbbf6/%EC%97%91%EC%85%80%EA%B8%B0%EC%B4%88%20%EB%8B%A4%EC%A7%80%EA%B8%B0%202-8%20%EA%B3%A0%EA%B0%9D%20%EB%B0%A9%EB%AC%B8%EC%9C%A8%20%EC%9E%AC%EB%B0%A9%EB%AC%B8%EC%9C%A8%20%EA%B5%AC%ED%95%98%EA%B8%B0%20-%20%EC%99%84%EC%84%B1%ED%8C%8C%EC%9D%BC_.xlsx?dl=0
소나로사
소나로사 2020.03.11 13:11
잘 봤습니다.
피벗 테이블과 차트는 많이 사용을 해봐야 손에 익을듯 합니다
김선주
김선주 2020.03.18 15:14
처음으로 문의 드립니다. 우선 좋은 강의 감사드립니다.
피봇테이블 만드실때 "방문일"을 행으로 끌어 내릴 때,
"분기", "연" 도 같이 생성되는 것을 확인했습니다.
그런데 고객방문현황 테이블에는 방문일 만 있는데요,
어떻게 하신 건지요? 궁금합니다. 알려주시면 감사하겠습니다.
오빠두엑셀
오빠두엑셀 작성자 2020.03.19 11:02
안녕하세요~^^
피벗테이블의 기본표시형식은 사용중인 엑셀설정에 따라 다를 수 있습니다.
피벗테이블의 날짜열을 우클릭 하신 뒤, '그룹'을 선택합니다.
이후 '분기', '연'을 활성화해보시겠어요?
바로 해결되실겁니다.^-^
감사합니다.
daniel_p
daniel_p 2020.03.22 21:08
제가 하고있는 업무에 활용도가 높겠습니다.
감사합니다~
크리슈
크리슈 2020.03.29 21:05
좋은 정보 감사합니다!
노은
노은 2020.03.31 01:01
고객관리에 유용할것 같네요
angami919
angami919 2020.03.31 11:10
개꿀입니다아아아아!!!!!!!
오빠두짱
오빠두짱 2020.04.03 15:05
완성파일 다운받을 수 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2020.04.04 16:51
안녕하세요? 홈페이지 게시글을 하나씩 수정중에 있습니다.
이후 완성파일을 같이 업로드하도록 하겠습니다^-^ 좋은 의견 감사드립니다.