1년 월별 날짜별 장부에서 오늘 날짜 기준으로 재고가 보이는, 미래 날짜는 재고량이 보이지 않는 엑셀 수식입니다
아마 어느 회사 또는 단체에서 가장 기본이 되는 양식이라면 전체 수불현황입니다. 1년짜리 장부를 만들어 매일 입고 출고, 재고를 정리하죠. 이것을 어떻게 표현하더라도 반드시 있어야 합니다. 그 이름이 약간은 바뀔지 모르지만, 생산업체뿐만 아닌 서비스 업체에서도 기본적인 양식입니다.
그런데 이런 양식에서 한 가지 문제라면 문제가 있는데요, 그림부터 보겠습니다.
어떤 업종이라도 이 하나는 무조건 있어야 하는 가장 흔한 양식입니다. 그런데 잘 보면 5월 16일 생산 10개를 넣고 출고가 없으니 15일 재고 62에 더하면 재고 72가 됩니다. 문제라고 하면 이 72개의 재고가 뒷날짜에도 그대로 남아있다는 겁니다. 똑같은 수식이 들어있으니 같은 값이 끝까지 갑니다.
재고량 수식은 전월 마지막 재고량 + 생산량 - 출고량입니다.
답으로 넘어가기 전에 어떻게 구현하면 좋을까 생각해 보겠습니다. 오늘 날짜 기준으로 계산을 하면 되겠죠. 그냥 오늘 날짜와 맞다면 계산하고, 오늘 날짜가 아니라면 0을 반환하면 됩니다. 여기서 오늘 날짜 기준으로 정하면 지난 날짜는 오늘이 아니기에 결과는 0이 나옵니다. 그래서 오늘 날짜보다 크다면 0을, 아니라면 계산식을 수행하면 오늘보다 앞선 날짜는 계산이 됩니다.
또, 그렇다면 날짜는 어떻게 비교해야 할까요. 지금 양식에 월과 일자가 있습니다. 이것을 그대로 사용하면 되겠습니다. 지금 이 양식은 월과 일자는 날짜가 아닌 문자로 되어있어 이것을 날짜로 바꿉니다. 그리고 날짜는 특정 월의 날짜입니다. 내가 원하는 몇 월 며칠이 아닌 고정된 날짜입니다. 그래서 날짜 비교는 왼쪽 월과 상단에 있는 날짜를 이 두 가지를 현재 날짜와 비교합니다. 참고로, 위에 있는 날짜는 어떤 월의 날짜로 하더라도 상관없습니다. 1월로 하든지 12월 하든지 전혀 문제 되지 않습니다. 뒤에 있는 날짜만을 가져오니까요.
결과를 보겠습니다.
오늘 날짜 5월 17일입니다. 재고가 오늘 날짜 기준으로 나타났습니다.
수식은
=IF(AND(MONTH($A$7) = MONTH(TODAY()), DAY(D3) > DAY(TODAY())), 0, C9+D7-D8)
여기서 IF(AND(MONTH($A$7), ($A$7) 이곳은 왼쪽 월이 있는 셀 위치이며, DAY(D3) 이곳은 위에 날짜가 있는 셀 위치입니다. 생각보다 간단하게 해결했네요.