웹사이트 검색

N() 함수처럼 Excel에서 수식을 코드처럼 문서화하기


셀 메모는 엑셀 세계의 잡동사니와 같습니다—보기 방해가 되고 수식 작성에 방해가 됩니다. 그래서 메모를 수식 안에 숨기면서 개발자 마인드를 채택해야 합니다. 이렇게 하면 논리를 깔끔하게 유지하고, 데이터를 잘 보이게 하며, 스프레드시트를 전문적으로 관리할 수 있습니다.

N() 함수: 당신의 새로운 보이지 않는 노트북

코더처럼 엑셀 수식을 문서화하기 시작하는 가장 간단한 방법은 N() 함수를 사용하는 것입니다. 이 함수의 주된 역할은 숫자가 아닌 값을 숫자로 변환하는 것이지만, 숨겨진 특징이 있습니다. 이 함수 안에 있는 텍스트 문자열은 0으로 평가되기 때문에 수식의 최종 결과를 변경하지 않고도 수학 공식에 추가할 수 있습니다.

T_Comm 테이블에서 수수료 열을 계산하고 있다고 가정해 보겠습니다. 여기서 고참 직원은 신입 직원과 다르게 계산됩니다. 문서화되지 않은 복잡한 수식 때문에, 시트를 보는 누구나 비즈니스 로직을 이해하려면 수학을 되짚어야 합니다:

=IF([@Rank]="Senior",[@Profit]*0.2,[@Profit]*0.15)

바로 이때 N() 함수가 유용합니다. 계산식 끝에 이 함수를 추가하면 스프레드시트 그리드에는 나타나지 않지만 수식 입력줄에서는 볼 수 있는 일반 텍스트 메모를 넣을 수 있는 공간이 만들어집니다. 항상 메모를 큰따옴표로 감싸세요—따옴표가 없으면 Excel은 이를 잘못된 수식으로 간주하고 #NAME? 오류를 반환합니다:

=IF([@Rank]="Senior",[@Profit]*0.2,[@Profit]*0.15)
+N("Senior rate is 20%; Junior/Unknown is 15%")

이제 설명을 계산식에 영구적으로 첨부했으므로, 논리에 대한 어떤 질문에 대한 답도 이미 공식 안에 있습니다.

Alt+Enter를 사용하여 수식의 +N() 부분을 별도의 줄로 이동하세요. 이렇게 하면 수식이 위쪽에, 설명이 바로 아래에 위치하는 명확한 시각적 스택이 만들어집니다. 수식 입력줄을 확장하려면(Ctrl+Shift+U) 전체 개발자 뷰를 확인할 수 있습니다.

텍스트 문제: 수식이 깨지지 않고 주석 다는 방법

이제 T_Comm 테이블에 알 수 없는 직급을 표시할 수 있는 상태(Status) 열을 추가한다고 상상해 보세요. 그렇게 하면 HR 팀이 이를 수정할 수 있습니다. 텍스트 결과에 '+N()' 주석—예를 들어 'HR 프로필 확인'—을 추가하려고 하면, Excel은 단어에 덧셈을 수행할 수 없기 때문에 #VALUE! 오류를 발생시킵니다. 텍스트 기반 수식을 문서화하려면, 보이지 않는 빈 문자열을 사용하여 주석을 '붙여야' 합니다.

다음은 댓글을 텍스트 문자열을 깨뜨리지 않는 형식으로 변환하는 이중 래핑 기술입니다:

=IF([@Rank]="Unknown","Check HR Profile","Verified")
&T(N("Flagging for HR cleanup; rank must be Senior or Junior"))

여기서 N() 함수는 텍스트를 0으로 변환합니다. 그런 다음 T() 함수가 그 0을 보고—텍스트가 아니므로—빈 문자열("")을 반환합니다. 본질적으로 상태 메시지에 "아무것도 없는 것"을 추가하는 것이므로 셀은 변경되지 않지만, 메모는 수식 입력줄에 안전하게 저장됩니다.

수학 기반 버전에서는 0을 더할 때 ‘+’를 사용했지만, 텍스트 문서에서는 두 텍스트 문자열을 합치는 것이므로 연결 연산자(&)를 사용해야 합니다. 새 줄의 시작 부분에 연결 연산자(&)를 두면(Alt+Enter 사용) 이를 보는 사람에게 논리가 끝났고 주석이 시작되었음을 알리는 신호가 됩니다.

논리 문서화: +0*N() 구문

때때로 Excel 수식은 숫자나 문자열을 반환하지 않고 조건이 충족되는지 여부를 알려줍니다.

이번에는 T_Comm 테이블에 급여 부서를 위해 고수익 행을 표시하는 보너스 열을 추가하고자 합니다. 만약 +N()을 사용하여 직접 주석을 추가하면, Excel은 TRUE를 1로, FALSE를 0으로 처리하기 때문에 혼동될 수 있습니다. 그 결과, 주석을 추가하면 논리가 숫자로 변환될 수 있습니다. 이는 TRUE와 FALSE 값이 필요하여 작동하는 체크박스를 사용할 때 특히 문제가 됩니다. 따라서 논리를 순수하게 유지하려면 주석에 0을 곱해야 합니다:

=[@Profit]>300
+0*N("Profits over $300 qualify for a bonus")

수식이 논리식을 괄호로 묶지 않았다는 점에 주목하세요. 괄호로 묶으면 결과가 숫자로 변환되어 체크박스가 예상대로 작동하지 않습니다.

그런 다음, 열을 선택하고 삽입 탭에서 '체크박스'를 클릭하세요.

주석을 넘어서: LET 함수로 이름 지정 논리

나는 당신이 '왜 그냥 LET 함수를 사용하지 않지?'라고 생각하는 소리를 듣습니다. 그리고 그것도 합리적인 질문이에요! 실제로 LET 함수는 로직을 구성하면서 이름을 붙일 수 있기 때문에 현대 엑셀 문서화의 금표준입니다. 그러나 코멘트와 변수에는 근본적인 차이가 있습니다.

N() 함수가 외부 문맥으로 수식을 서술할 수 있게 해주는 반면, LET 함수는 수식의 내부 구조를 정의할 수 있게 해줍니다. 변수는 값이 무엇을 나타내는지 알려주고, 주석은 그 값이 처음에 왜 존재하는지 알려줍니다.

T_Comm 테이블을 정리하기 위해 최종 지급액을 계산하고자 한다고 가정해 보세요. 여기에는 다음이 포함됩니다:

  • 주니어 직원에게 15%의 수수료.
  • 상급 직원에게 20% 수수료.
  • 누군가의 수익이 300달러를 초과하면 50달러 보너스.
  • 고위직 이상이면 누구나 50달러 보너스가 있습니다.

LET을 사용하면 수학을 시작하기 전에 이러한 이름이 지정된 변수를 정의할 수 있습니다:

=LET(
JuniorRate, 0.15,
SeniorRate, 0.2,
BonusAmt, 50,
IsSenior, [@Rank]="Senior",
HighProfit, [@Profit]>300,
([@Profit]*IF(IsSenior, SeniorRate, JuniorRate))
+IF(HighProfit, BonusAmt, 0)
+IF(IsSenior, BonusAmt, 0)
)

이 구조를 사용하면 중요한 숫자와 혼란스러운 셀 참조를 SeniorRate, BonusAmt와 같이 명확하게 표시된 변수로 바꿀 수 있어, 수식을 논리적인 이야기처럼 읽을 수 있습니다. 그 결과, 하위 계산을 망치지 않고 단일 위치에서 요금을 업데이트할 수 있으며, 변수의 '무엇'과 문서의 '왜'를 분리할 수 있습니다.

요약: 개발자를 위한 엑셀 수식 문서 가이드

마무리하자면, 데이터 유형에 따라 적절한 문서화 전략을 선택하는 데 도움이 되는 간단한 참고 가이드를 소개합니다:

데이터 유형

문법 전략

목적

숫자

+N("댓글")

결과를 바꾸지 않고 수학에 숨겨진 0을 추가합니다.

텍스트

&T(N("댓글"))

보이지 않는 빈 문자열을 추가하여 #VALUE! 오류를 방지합니다.

체크박스 (또는 TRUE/FALSE)

+0*N("댓글")

부울 논리를 유지하여 체크박스와 TRUE/FALSE 값이 깨지지 않도록 합니다.

복잡한 논리

=LET(variable,value,...)

가독성을 높이기 위해 변수를 정의합니다.


만약 스프레드시트에 꼭 노트를 추가해야 하지만 셀 모서리에 있는 짜증나는 빨간 태그는 원하지 않는다면, 한 가지 비밀 트릭이 있습니다. N()과 LET 함수는 수식 안의 논리를 문서화하는 데 완벽하지만, 때로는 시트를 사용하는 사람에게 지침을 제공해야 할 때가 있습니다. 데이터 유효성 검사(Data Validation)를 사용하면 특정 셀을 선택할 때만 나타나는 비밀 팝업 노트를 만들 수 있습니다. 이렇게 하면 스프레드시트를 깔끔하게 유지하면서도 필요한 곳에 정확한 안내를 제공할 수 있습니다.

관련기사