들어가기 전에
엑셀 수식에서 이중 대시(또는 이중 단항 연산자: double unary operator)가 사용되는 경우가 있으며, 이는 TRUE와 FALSE를 1과 0으로 처리하는 단축키입니다. 이를 통해 특정 범위에 걸쳐 논리 테스트 결과를 쉽게 더하거나 셀 수 있습니다. 엑셀에서 이중 대시의 구체적인 역할과 사용 사례를 소개합니다.
이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.
- 원문: You need to know what the double unary operator (--) does in Excel
- URL: https://www.howtogeek.com/microsoft-excel-double-unary-operator/
핵심 기능: 부울-숫자 강제 변환
이중 대시 또는 이중 단항 연산자는 값을 한 데이터 유형(부울)에서 다른 데이터 유형(숫자)으로 강제 변환합니다. 이 과정을 형 변환 이라고 합니다 . 간단한 예를 들어 보겠습니다.
다음 수식은 셀 A1의 값이 10보다 크기 때문에 TRUE를 반환합니다.
=A1>10

수식에 빼기 기호 하나만 있으면 TRUE가 음수 숫자(-1)로 변환됩니다.
두 번째 빼기 기호(즉, 이중 단항 기호)를 추가하면 숫자가 1로 반전됩니다.
=--(A1>10)

A1 셀의 값이 부울 기준을 충족하지 않으면 이중 단항 연산자는 0을 반환합니다.

논리 배열이 간단한 합계에 실패하는 이유
논리 결과 배열을 만들 때 SUM 함수는 TRUE와 FALSE를 숫자가 아닌 것으로 처리하고 무시하므로 결과적으로 0이 반환됩니다.
다음 워크시트에서는 주간 매출 총액을 모니터링하고 500달러 목표를 달성하는지 여부를 확인합니다. C2 셀의 수식은 B열의 해당 값이 조건을 충족하는지 여부에 따라 TRUE와 FALSE를 반환하는 배열을 생성합니다.
=B2:B6>=F2

이제 각 주별로 목표를 달성했는지 여부를 알려주는 대신, Excel에서 전체 판매 총액 중 목표를 달성한 판매 총액을 계산하도록 하려고 합니다. 그러나 위 수식을 SUM으로 둘러싸면 부울 값이 숫자가 아니므로 0이 반환됩니다.
=SUM(B2:B6>=F2)

이 사례에서는 COUNTIF 함수를 사용할 수 있습니다 . 하지만 여기서 SUM 함수를 사용하는 이유는 이중 단항 연산자가 내부 배열의 숫자형 변환을 강제로 수행하는 방식을 보여주기 위해서입니다.
이중 단항은 배열 요소를 변환하므로 SUM 함수가 이를 처리할 수 있습니다.
=SUM(--(B2:B6>=F2))
Excel은 내부적으로 배열을 {TRUE, FALSE, TRUE, FALSE, FALSE}에서 {1, 0, 1, 0, 0}으로 바꾸는데, 그렇기 때문에 올바른 결과인 2가 구해집니다.

강력한 사용 사례: COUNTIFS가 실패할 때 계산
이중 단항 연산자는 COUNTIFS와 같은 내장 함수로는 실행할 수 없는 복잡한 배열 논리를 수행할 때 진가를 발휘합니다 . COUNTIFS의 주요 한계는 조건이 정적이라는 점입니다. 즉, 행 단위로 범위를 동적으로 비교할 수 없습니다.
다음과 같은 예제에서, 얼마나 많은 영업사원이 개별 목표를 초과 달성했는지 계산해야 한다고 가정해 보세요.

이 작업을 올바르게 수행하려면 Sales 열의 각 셀을 Goal 열의 인접 셀과 비교해야 합니다. COUNTIFS를 사용하여 이 작업을 수행하려고 하면 예상치 못한 결과가 발생합니다.
=COUNTIFS(B2:B6, ">"&C2:C6)

Excel에서는 B2와 C2, B3와 C3 등을 비교하는 대신, 전체 범위(C2:C6)를 동일한 범위(B2:B6)에 적용할 여러 기준의 배열로 처리하기 때문입니다. 이렇게 하면 전체 목록에서 각 목표값보다 큰 판매량을 계산하기 때문에 잘못된 결과 배열({3, 1, 3, 2, 3})이 반환됩니다. 즉, 총 판매량 3개는 81보다 크고, 1개는 97보다 크고, 3개는 71보다 크고, 이런 식으로 계속됩니다.
대신, SUMPRODUCT를 이중 단항 연산자와 함께 사용합니다. 이렇게 하면 Excel에서 논리 테스트를 행별로 평가합니다.
=SUMPRODUCT(--(B2:B6>C2:C6))

작동 원리는 다음과 같습니다.
- 비교(B2:B6>C2:C6)는 올바른 부울 값 배열인 {FALSE, FALSE, TRUE, FALSE, TRUE}를 반환합니다.
- 이중 단항 연산자(--)는 이 부울 배열을 숫자형 배열 {0, 0, 1, 0, 1}로 변환합니다.
- SUMPRODUCT 함수는 0+0+1+0+1의 요소를 더하여 2를 반환하는데, 이는 올바른 개수입니다.
COUNTIFS와 마찬가지로 SUMIFS도 정적 조건 확인에만 국한됩니다. 예를 들어, 평균 판매량을 초과하는 경우에만 판매량 합계를 구하려면 SUMPRODUCT 함수와 이중 단항 연산자를 함께 사용해야 합니다.
왜 SUM이 아닌 SUMPRODUCT를 사용하나요?
이 예에서는 SUMPRODUCT 대신 SUM을 사용할 수 있습니다. 하지만 두 함수의 차이점은 호환성입니다. SUMPRODUCT는 기본적으로 배열을 처리하여 이중 단항 연산자로 생성된 숫자 배열을 자동으로 가져와 요소의 합을 구합니다.
2021년 이후에 출시된 Microsoft 365용 Excel 및 영구 버전에서는 SUM 함수가 이 작업을 자동으로 수행하지만, 이전 버전에서는 수식을 적용하려면 Ctrl + Shift + Enter를 눌러야 하며, 이때 수식은 중괄호가 자동으로 붙습니다(일명 CSE 수식).
{=SUM(--(B2:B6>C2:C6))}

이전 버전의 Excel에서는 이 수식을 Enter 키로 입력하면 오류나 잘못된 값이 반환됩니다. 따라서 SUMPRODUCT는 더 간단하고 안전하며 이전 버전과도 호환됩니다.
다른 방법은?
Excel은 TRUE와 FALSE 바로 앞에 수학 기호가 있으면 이를 1 또는 0으로 변환하기 때문에 이중 단항 연산자가 정말 필요한지 의문을 품는 것이 타당합니다. 모든 산술 연산은 이러한 유형의 강제 변환을 수행하므로, 실제로 동일한 결과를 얻는 다른 수식도 있습니다. 예를 들어, 전체 논리 배열을 1로 곱할 수 있습니다.
=SUMPRODUCT((B2:B6>=F2)*1)

배열에 0을 추가할 수도 있습니다.
=SUMPRODUCT((B2:B6>=F2)+0)

이러한 방법은 부울 값을 숫자로 성공적으로 변환하여 배열을 가산 가능한 상태로 만듭니다. 하지만 필자는 다음과 같은 이유로 여전히 이중 단항 연산자를 선호합니다.
- 의도를 명확하게 보여줍니다: 이중 단항 연산자는 보편적으로 허용되는 부울-숫자 변환 방법입니다. 이 연산자의 유일한 목적은 데이터 유형 변환이며, 스프레드시트를 보는 모든 사람이 수식이 정확히 무엇을 하는지 즉시 알 수 있습니다. *1이나 +0을 사용하는 것은 덜 명확하며 결과에 별도의 산술 조정을 적용하는 것으로 오해받을 수 있습니다.
- 더 깔끔하고 덜 복잡합니다: 이중 단항 연산자는 배열에 수학적 강제 변환 연산을 적용하는 가장 간결한 방법입니다. 예를 들어, 복잡한 중첩 배열 수식이 있는 경우, 두 개의 간단한 대시(-)를 사용하면 전체적인 논리를 간단하게 유지하는 데 도움이 됩니다.
- 효율성이 약간 더 높습니다: 차이는 미미하지만, 매우 큰 통합 문서에서는 이중 단항 연산자가 더 효율적일 수 있습니다. *1이나 +0을 사용하면 Excel에서 각 셀에 대해 별도의 연산으로 처리해야 하지만, 이중 단항 연산자는 단순히 배열 값의 데이터 형식을 변환합니다.
따라서 대안은 완벽하게 기능적이지만, 이중 단항 연산자는 부울-숫자 강제 변환을 수행하는 가장 깔끔하고 효율적이며 전문적인 방법입니다.
마치며
이중 대시 기호는 고급 스프레드시트 및 수식 제어 기능을 제공하는 유일한 Excel 기호는 아닙니다. 예를 들어, 최신 버전의 프로그램에서 # 기호는 동적 배열의 모든 결과를 수식에 포함하는 데 필수적이며, @ 기호는 범위 또는 배열에서 단일 값을 반환합니다.
'Excel' 카테고리의 다른 글
| 엑셀 사용자가 꼭 알아야 할 개념 — '범위'와 '배열'의 차이 (1) | 2026.03.17 |
|---|---|
| 복잡한 작업을 간단하게 처리할 수 있는 엑셀 템플릿 5가지 (1) | 2026.03.13 |
| 엑셀 파일을 공유하기 전에 반드시 확인해야 할 사항 (0) | 2026.03.10 |
| 대부분의 사용자가 존재하는지 잘 모르는 Excel 기능 7가지 (0) | 2026.03.06 |
| 엑셀에서 IFERROR 및 ISERROR 대신 IFNA를 사용하세요 (0) | 2026.03.05 |
