이전 강좌에서 형식 구분자 ";" 에 대해 알아보았습니다. 복잡해 보여도 따져보면 결국 다 언급했던 내용들을 양수, 음수, 0, 문자로 구분하는 게 끝이었습니다.
하지만 만약 사용할 표시 형식이 양수
만이라면, 또는 음수
만이라면 형식 기호를 어떻게 사용해야 할까요? 이번에는 형식 구분자 ";"를 적당하게 사용하는 방법에 관해 설명하려 합니다.
이전 강좌와 이어지는 내용이니 이전 강좌를 못 보신 분들께서는 보시고 오셔야 내용을 이해할 수 있습니다. 확인하시고 돌아와 주세요.
지난 강좌에서 형식 구분자 ";"을 사용할 때 기본은
라 했습니다. 그런데 만약 양수만 나타내고 음수, 0, 문자는 나오지 않게 처리하고 싶다면 어떻게 할까요? 답은 간단합니다. 나와야 할 형식 외에는 모두 표시하지 않는 것이죠.
양수만 나오게 하고 싶다면 => "0;;;"
음수만 나오게 하고 싶다면 => ";-0;;"
문자만 나오게 하고 싶다면 => ";;;@"
즉 나와야 할 형식을 제외하고 다른 형식의 기호를 모두 없애는 것입니다.
물론 이렇게 표시 형식을 바꾼다고 값이 없어진 것은 아닙니다. 표현하지 않을 뿐 각 셀의 값은 모두 정상적으로 작성되어 있습니다.
그럼, 질문. "#,##0"과 "#,##0;"는 같은 표현일까요? 다른 표현일까요?
같은 표현이라면 질문하지 않았겠죠.
"#,##0"의 경우는 형식 구분자 ";" 사용한 것이 아니기 때문에 양수만 나오게 하는 것이 아니라 숫자 표시 형식에 천 단위 구분 기호(,)를 사용하라는 명령입니다. 그것이 음수이든 상관하지 않고 0도 표시하고 문자도 그대로 나오는 형태입니다. 다시 말하면 "숫자는 천 단위 구분 기호가 나오게 표시해. 그리고 나머지는 원래 표시하던 데로 표시해"라는 명령이죠.
하지만 "#,##0;"의 경우는 구분자 ";"를 사용한 상태입니다. 그리고 사실 양수만 표시 형식(천 단위 구분)을 정한 게 아니라 음수도 정한 것입니다. "표현하지 않게" 정한 것이죠. 왜냐하면 구분자 ";"를 사용했기 때문입니다. ";"를 기준으로 좌측은 양수, 우측은 음수죠. 음수는 아무런 표시 형식 기호가 없으므로 표시하지 말라는 것이 됩니다. 그리고 더 이상 구분자가 없으므로 나머지는 원래 표시하던 데로 표시하라는 것이 됩니다.
결국 필요한 형식까지 구분자 ";"로 구분하고 사용하고, 관여하고 싶지 않은 표시 형식(원래 나오던 표시 형식)은 그대로 나오게 하고 싶다면 이하는 작성하지 않는 것이죠.
그럼, 숫자 "0"만 "-"로 나오게 하고 나머진 원래대로 나오게 하고 싶다면 어떻게 할까요?
표시 형식을 그냥 "-"로 작성하면 될까요? 아니면 ";;-"로 작성?
꽤 애매하죠. 구분자 없이 "-"만 작성하면 숫자의 표시를 모두 "-"만 나오게 하겠다는 것이죠. 그렇다고 ";;-"로 하면 숫자 "0"은 "-"로 바뀌겠지만 양수와 음수는 모두 표시하지 않습니다.
";"로 구분했을 때 숫자 "0"은 세 번째 위치해 있는 표시 형식입니다. 즉 숫자 "0" 처리를 위해서는 어쨌건 구분자 ";"를 사용해야 합니다. 하지만 양수와 음수에는 표시 방법은 관여하고 싶지 않습니다. 난감한 상황이죠.
이 경우 양수와 음수에 관여하지 않을 방법은 없습니다. 원래의 표시 형식을 무조건 만들어 줘야 합니다. 아무것도 쓰지 않으면 아무것도 나오지 않기 때문입니다.
예제의 경우 양수와 음수 원래의 표시 방법은 없었으니, 기본 형식인 "0;-0;-"을 사용하여 양수도, 음수도 원래의 표시 방법을 명시해 줘야 숫자 "0"을 "-"표시로 사용할 수 있게 됩니다. 만약 원래의 표시 방법에 천 단위 구분 기호가 있었다면 "#,##0;-#,##0;-"로 표시 형식을 작성해야 하겠죠.
즉 음수의 표시 형식을 변경하고 싶다면 양수도 표시 형식을 어찌 되든 작성해야 하고, 숫자 "0"의 표시 형식을 변경하고 싶다면 양수도 음수도 어떤 표시형식이든 작성해 줘야 합니다. 다시 말해 변경할 표시 형식 위치까지는 무조건 "양수;음수;0;@"의 순서를 지켜 명시해 줘야 한다는 것입니다.
최대한 설명하려 노력했습니다만 저도 모르게 말인 꼬인 게 아닌지 의심스럽네요. 오해가 없었으면 합니다. 여기까지입니다.