엑셀에 MATCHS 함수가 필요할지도 모릅니다

엑셀에 MATCHS 함수가 필요할지도 모릅니다

여전히 일하는데 엑셀을 자주 사용합니다. 이전 프로젝트 까지는 주로 데이터 기반으로 게임을 조립하는 방식을 사용해 왔기 때문에 데이터 입력 방법으로 엑셀을 특히 더 많이 사용해 왔습니다. 엑셀은 2차원을 초과하는 데이터 모양을 입력하는데는 아주 고통스럽지만 데이터 모양을 이리 저리 잘 조정해 2차원을 초과하지 않는 모양으로 만들면 아주 오랜 기간에 걸쳐 다양한 상황에 사용할 수 있도록 개발된 덕분에 아주 편안한 그리드 모양의 데이터 입출력 도구로 사용할 수 있습니다. 그러다 보니 종종 어떤 분들은 엑셀을 위한 기형적 데이터 정의에서 설명한 오직 엑셀을 사용하기 위해 이상한 상황을 만드는 개발을 정상적으로 인지하기도 하고 지옥같이 복잡한 수식에 빠져 허우적거리며 시간을 낭비하기도 합니다.

다른 분들이 엑셀로 뭔가 만드실 때는 주로 엑셀 수식 복잡도 통제에 주의해 달라고 주문하곤 합니다. 엑셀을 다루는 우리들은 전문 프로그래머가 아니고 엑셀의 수식 입력 환경은 전문 프로그래머들이 최대한 피하기 위해 노력하는 코드 중첩을 유도하도록 만들어져 있으며 여러 조건을 중첩한 상태에서 수식 코드를 관리하기에도 불편한 환경인 데다가 너무나 초보적인 수준의 디버깅 환경 밖에 제공하지 않기 때문에 긴 수식을 똑바로 만들고 유지 보수 하기는 거의 불가능하기 때문입니다. 그래서 수식이 여러 겹으로 길어질 것 같으면 그 수식의 중간 계산 부분을 분리해 다른 칼럼이나 다른 워크시트로 분산해 여러 칼럼에 걸친 중간 계산을 추적할 수 있게 만들고 최종 결과를 가져올 때도 짧은 수식으로만 마무리할 수 있게 해 나중에 수식을 만든 자기 자신을 포함한 사람들이 워크시트의 동작을 파악하기 쉽게 만들어 달라고 주문합니다.

또 최대한 단순한 함수를 사용해 워크시트를 작성하도록 가이드 합니다. 여기서 단순한 수식과 단순하지 않은 수식을 구분하는 최대한 복잡한 함수는 VLOOKUP 입니다. 이 함수는 테이블에서 값을 조회하는데 흔히 사용하고 워크시트를 만들 때 이런 동작을 수도 없이 필요로 하지만 작은 제약이 있습니다. 가령 이 함수는 값을 검색한 다음 테이블에서 같은 행의 다른 값을 가져오려고 할 때 반드시 검색한 값보다 오른쪽에 있는 값만을 가져올 수 있습니다. 이는 워크시트를 만드는 상황에서 꽤 갑갑한 제한이어서 이 제한을 회피하기 위해 다른 방법을 생각해 보게 만듭니다.