매일 입력되는 단가 관리법
매일 쌓여가는 데이터 관리, 이렇게 해보세요! - 일별 단가 관리법
이 강의에서는 매일 누적되는 단가 데이터를 LOOKUP 함수로 정리해, 거래처와 제품, 날짜 조건에 맞는 가장 최근 단가를 자동으로 가져오는 방법을 다룹니다. 검색 범위를 아래에서 위로 거슬러 올라가는 LOOKUP의 동작 원리를 응용해, 단가가 자주 변경되는 실무 환경에서도 안정적으로 동작하는 수식을 작성하는 과정을 단계별로 알아봅니다.
실습자료를 준비했어요
수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇
영상강의
사용된 공식
= LOOKUP( 2, 1/(($거래처범위=거래처)*($제품명범위=제품명)*($날짜범위<=기준날짜)), $단가범위 )

공식 설명
LOOKUP 함수를 응용하여 매일 누적되는 단가 데이터를 효율적으로 관리하는 방법을 알아봅니다. 이번 강의에서는 단가를 조회할 조건으로 '거래처', '제품명', '날짜' 세 가지를 사용하지만, 필요에 따라 더 다양한 조건을 추가할 수 있습니다.
- 검색 조건 중 '날짜범위'는 반드시 '오름차순'으로 정렬되어 있어야 합니다. (이전 날짜가 위쪽에 오도록 정렬)

- LOOKUP 함수는 검색 범위를 아래에서 위로 거슬러 올라가며 값을 검색합니다. 본 공식은 이 동작 원리를 활용해, '기준일'을 기준으로 가장 최근에 등록된 제품의 가격을 찾아냅니다.

- LOOKUP 함수의 마지막 값 찾기 공식에 대한 자세한 설명은 아래 관련 포스트에서 확인하실 수 있습니다.
관련 기초함수
강의에 사용된 공식 알아보기
강의에서 사용된 공식
=LOOKUP( 2, 1/((tbl제품정보[거래처]=B3)*(tbl제품정보[제품]=C3)*(tbl제품정보[등록일]<=A3)), tbl제품정보[단가] )
'// 거래처, 제품, 등록일 조건을 모두 만족하는 행 중 가장 최근 값을 '단가' 범위에서 찾아 반환합니다.
'// 거래처, 제품, 등록일 조건을 모두 만족하는 행 중 가장 최근 값을 '단가' 범위에서 찾아 반환합니다.
공식의 동작원리 단계별 알아보기
- LOOKUP 함수의 검색 조건으로 입력된 수식부터 살펴봅니다.
거래처, 제품, 등록일 조건을 모두 만족할 경우 계산 결과로 1이 반환됩니다.
조건 중 하나라도 만족하지 않으면 1/0 형태가 되어 #DIV/0 오류가 발생합니다.= LOOKUP( 2, 1/((tbl제품정보[거래처]=B3)*(tbl제품정보[제품]=C3)*(tbl제품정보[등록일]<=A3)), tbl제품정보[단가] )
= 1/((tbl제품정보[거래처]=B3)*(tbl제품정보[제품]=C3)*(tbl제품정보[등록일]<=A3))
= 1/{(TRUE,FALSE,FALSE,FALSE,…)*(TRUE,FALSE,FALSE,FALSE,…)*(TRUE,FALSE,FALSE,FALSE,…)}
= 1/{(1,0,0,0...)*(1,0,0,0...)*(1,0,0,0)}
= 1/{1, 0, 0, 0, …}
= {1/1, 1/0, 1/0, 1/0 ..}
= 1, #DIV/0, #DIV/0, #DIV/0, ...
'// LOOKUP 함수는 인수로 '배열'을 받을 수 있습니다. SUMPRODUCT 함수가 대표적이며, 이러한 특성을 응용하면 다양한 방식으로 함수를 활용할 수 있습니다. - LOOKUP 함수는 검색 범위에서 값을 '아래에서 위로 거슬러 올라가며 검색'합니다. 또한 찾으려는 값과 정확히 일치하는 값이 없을 경우 해당 값보다 작거나 같은 '유사 일치'로 검색합니다.
공식에서 찾을 값은 '2'입니다. 즉, 검색 범위에서 '2'보다 작거나 같은 값을 아래에서부터 위로 올라가며 찾습니다.
- 강의 초반에 배열test sheet 에서 범위를 선택해서 함수를 설명해주시는데 범위 선택을 $로 고정하지 않고 넣으셨는데 어떻게 한방에 밑에까지 채우기 되는지 궁금합니다.
- 그리고 구매기록에 주황색 영역에서 단가부분 함수가 처음에는 {가 들어갔었다가 다시보니 사라졌는데 {로 표시된 이유가 있을까요?
- 또 거래처 단가 등을 표시할때 [@거래처] 가 있는데 @이란 기능이 어떤기능을 하는건지 궁금합니다. 초반 기초강의에서 본거같은데 잘 모르겠어요 ㅠㅠ
연관강의가 있어서 다 볼 수는 없지만, 강의를 보면서 일단 정주행 부터 다하고다시 처음부터 시작하기 하면 어느정도 고급스킬로 다가설거라는 목표로 열심히 배우고 있습니다. ^^ 좋은 강의 감사드립니다.
- 커서를 셀의 오른쪽 아래로 가져가신 뒤, 더블클릭 하시면 좌/우 행 높이에 맞춰 자동채우기가 됩니다
- { 는 배열수식 기호입니다. 자세한 내용은 아래 링크를 참고해보세요.https://www.oppadu.com/%EB%B0%B0%EC%97%B4%ED%95%A8%EC%88%98-%EB%B0%B0%EC%97%B4%EC%88%98%EC%8B%9D/
- [@] 기호는 표의 '구조적참조' 기호입니다. [@필드명]으로 입력하면 수식이 입력된 셀과 동일한 행의 필드값을 참조합니다.
답변이 도움이 되셨길 바랍니다. :) 감사합니다.질문드릴게있는데, 강의 내용중에 #DIV/0 오류로 만들어주는 이유가 있나요?
LOOKUP함수를 통해 2를 찾는다고 하면 0으로 값이 나올 경우, 오류값이 아닌 0으로 나와도 되는게 아닌가 싶어서 문의드립니다.
강의 덕분에 항상 배움이 되고있습니다. 감사합니다.
질문)index,match(max).......이런 강의도 들었는데요..이것과 오늘 강의와 차이점을 무엇인가요?