들어가기 전에
엑셀 수식에서 해시 기호(#)는 동적 배열의 결과 전체를 참조하는 ‘스필 범위 연산자(spilled range operator)’로 사용됩니다. 예를 들어 =UNIQUE(A1:A20) 결과가 C1부터 펼쳐지면 C1#으로 전체 결과를 참조할 수 있습니다. 이 방식은 결과 범위가 늘어나거나 줄어도 자동으로 반영돼 동적 데이터 처리에 유리합니다.
이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.
- 원문: You need to know what the hash sign does in Excel formulas
- URL: https://www.howtogeek.com/hash-sign-excel-formulas/
개념
동물 보호소를 운영한다고 가정해 봅니다. 스프레드시트에는 현재 보호 중인 동물들을 보여주는 Animals_Admitted라는 형식의 엑셀 테이블이 있습니다.

보호구역 내 공간을 최대한 효율적으로 활용하려면 각 동물의 종류별 마릿수와 전체 동물 종류의 총 개수를 파악해야 합니다. 곧 사용하게 될 함수들은 배열이 확장된 형태로 출력되는데, 확장된 배열은 서식이 지정된 Excel 표에서는 작동하지 않으므로, Excel 표 서식이 적용 되지 않은 스프레드시트 영역에 수식을 입력해야 합니다.
현재 보호소에 있는 각 동물의 수를 확인하려면 D1 셀과 E1 셀(첫 번째 배열이 표시될 위치 바로 위의 셀)에 각각 'Animal' 과 'Count'라는 열 제목을 입력하세요.

D2 셀에 다음 수식을 입력합니다.
=UNIQUE(Animals_Admitted[Animal])
여기서 UNIQUE 는 범위 내에서 고유한 항목을 나열하는 Excel 함수이고, Animals_Admitted는 원본 데이터가 있는 테이블의 이름이며, [Animal] 은 해당 테이블의 세 번째 열에 할당된 이름입니다.
Enter 키를 누르면 'Animal' 열에 있는 각 고유 항목이 나열된 배열이 표시됩니다. 영향을 받는 셀 중 하나를 선택하면 결과 주위에 파란색 선이 나타나므로 배열이 확장된 것임을 알 수 있습니다.

해시 기호 활용
이제 엑셀을 사용하여 원래 표에 있는 각 동물의 수를 세어야 하는데, 이때 해시 기호(#)를 사용하면 훨씬 쉬워집니다. 이렇게 하려면 COUNTIF 함수를 사용해야 합니다. 하지만 나중에 특정 동물이 목록에 추가되거나 제거되더라도 UNIQUE 함수로 반환된 모든 동물을 D열에 포함시키려면 조건 참조 뒤에 해시 기호(#)를 추가해야 합니다.
E2 셀에 다음 수식을 입력합니다.
=COUNTIF(Animals_Admitted[Animal], D2#)
여기서 COUNTIF 는 발생 횟수를 세는 함수이고, Animals_Admitted[Animal] 은 원래 표에 있는 각 동물이 포함된 범위이며, D2#는 Excel에게 COUNTIF 함수의 조건이 D2 셀에서 시작하는 확장된 배열이므로 크기가 변경될 수 있음을 알려줍니다.
수식을 수동으로 입력하는 대신 마우스를 사용하여 각 인수에 해당하는 셀을 선택하면 수식이 자동으로 열 이름( 구조화된 참조 라고도 함 )을 사용하고 필요한 경우 해시 기호(#)를 추가합니다.

자, 이제 고슴도치 한 마리가 당신의 보호소로 들어왔고, 현재 당신이 돌보는 고슴도치는 이 한 마리뿐이라고 상상해 봅시다.

D열의 서식이 지정된 표 머리글을 참조하고 E열의 COUNTIF 수식에서 범위 확장 연산자를 사용했기 때문에 고슴도치가 D열 목록에 자동으로 추가되고 E열의 고슴도치 개수가 "1"로 올바르게 표시됩니다.

이번에는 동물의 수에 따라 정렬된 목록을 만들려고 합니다.

위의 제목들을 F1 셀과 G1 셀에 입력한 후, F2 셀에 다음을 입력합니다.
=SORTBY(D2#:E2#, E2#, -1)
여기서 SORTBY는 다른 범위 또는 배열의 값을 기준으로 범위를 정렬하는 Excel 함수이고, D2#:E2# 는 D열과 E열에 있는 배열이 D2셀과 E2셀에서 시작하는 두 개의 확장된 배열 열을 포함한다는 것을 Excel에 알려줍니다. E2# 는 정렬 기준으로 사용할 확장된 배열이고, -1은 데이터를 내림차순으로 정렬하도록 Excel에 지시합니다.

SORTBY 함수의 결과는 먼저 SORTBY 수식에 지정된 순서대로 정렬됩니다. 하지만 초기 정렬 후 동일한 값을 가진 변수가 있는 경우, 원래 데이터에 처음 나타난 순서대로 다시 정렬됩니다. 수식에 해시 기호(#)를 사용했으므로, 원본 표의 데이터에 따라 목록이 동적으로 확장되거나 축소됩니다.
마지막으로, 보호구역에 있는 동물 종류의 총 개수를 파악하는 기본적인 방법도 필요합니다. 이렇게 하려면 H1 셀에 적절한 제목을 입력한 후 H2 셀에 다음 수식을 입력합니다.
=COUNTA(D2#)
여기서 COUNTA 는 범위 내에서 비어 있지 않은 셀의 개수를 세는 Excel 함수이고, D2#는 해당 범위가 스필 배열임을 Excel에 알려줍니다. 즉, Excel에게 D2 셀부터 시작하여 스필 배열에서 UNIQUE 함수가 반환한 동물의 수를 세도록 지시하는 것이며, 이 숫자는 변경될 수 있습니다.

마지막 테스트로, 런던이라는 거북이가 풀려났다고 가정해 보겠습니다. 런던은 보호구역에 있던 유일한 거북이였으므로, 원래 데이터에서 런던을 제거하면 H2 셀에는 이제 돌보고 있는 동물이 18마리뿐이라는 내용이 정확하게 표시되고, 생성한 다른 목록에서도 "거북이"가 더 이상 나타나지 않습니다.
스필 범위 연산자(#)
시작하기 전에 몇 가지 추가 사항을 알고 있어야 합니다.
첫째, 같은 워크시트 내의 범위를 참조할 수 있을 뿐만 아니라 다른 시트의 범위를 참조할 수도 있습니다. 예를 들어, 2번 시트의 A2 셀에서 시작하는 배열을 참조하려면 다음과 같이 입력할 수 있습니다.
=Sheet2!A1#
두 번째로, 다른 통합 문서에 있는 범위를 참조할 수 있습니다. Microsoft에서는 참조하는 통합 문서가 열려 있어야 #REF! 오류가 발생하지 않는다고 하지만 , 닫힌 통합 문서로 테스트해 본 결과 참조가 정상적으로 작동했습니다. 데이터 손실을 방지하려면 두 통합 문서를 모두 저장하고 동일한 OneDrive 계정에 연결되어 있는지 확인하세요.
마지막으로, #SPILL! 오류가 발생하는 것을 방지하려면 배열이 스필될 모든 셀에 다른 데이터가 없고 병합되지 않은 상태인지 확인하세요.
마치며
이상의 개념을 익히면, 엑셀의 함수와 수식에 대한 지식을 넓히고 싶든, 엑셀 전문가가 필요한 직업에 지원했든, 엑셀 수식에서 해시 기호(#)가 어떤 역할을 하는지 자신 있게 말할 수 있습니다.
'Excel' 카테고리의 다른 글
| 엑셀 사용자라면 반드시 알아야 할 숨겨진 탐색 팁 6가지 (0) | 2026.07.06 |
|---|---|
| 데이터 분석가를 위한 강력한 Excel 함수 10가지 (0) | 2026.07.03 |
| 엑셀 기본 수식을 넘어서: 람다 도우미 함수가 새로운 표준이 되는 이유 (0) | 2026.06.30 |
| [파워툴스 업데이트] 현재 파일 삭제 기능 추가 (버전 4.6.0) (0) | 2026.06.30 |
| 엑셀 코파일럿으로 스프레드시트 작업을 더 쉽게 만드는 6가지 방법 (0) | 2026.06.26 |
