Excel

@ 연산자 - 동적 배열을 단일 값으로 변환

별동산 2023. 3. 30. 08:01
반응형

예전에 작성했던 엑셀 파일을 여니 @표시가 생겨서 살펴보니

 
@는 Implicit Intersection(암묵적 교차점) 연산자로서
과거 버전과의 호환성을 위해 Microsoft 365에 새로 도입된 기능이라고 합니다.
 

1. Microsoft 365의 배열 처리의 특수성

배열을 단일셀로 처리.xlsx
0.01MB

 
 

 
c2셀에 =b2:b13*2라고 입력하고 이전 버전의 경우는 Ctrl + Shift +Enter키를 눌렀는데, 엔터 키만 눌러도
C2셀부터 C13셀까지 B2셀부터 B13셀까지 값에 2를 곱한 값이 채워지고, 파란색 선으로 테두리가 쳐집니다.
 

 
다시 말해 배열인 경우 자동으로 배열의 크기만큼 계산이 이뤄집니다.
 

2. 이전 버전과의 호환성 확보

이전 버전의 경우는 Ctrl + Shift +Enter키를 누르지 않고 엔터 키만 누르면 배열이라도 셀 하나에만 값이 채워집니다. 그러나 Microsoft 365에서는 불가능한데, 그렇게 할 수 있게 하는 것이 @연산자입니다.
 
다시 말해 D2셀에 =@B2:B13*2라고 입력하고 엔터키를 누르면 
D2셀에만 B2*2의 값이 입력됩니다.

 

3. @연산자의 특성

가. Sum함수와 같이 배열을 더해서 합계를 반환하는 함수의 경우는 @연산자를 사용하더라도 하나의 값만을 반환합니다.

 

나. 인접 셀의 값을 참조합니다. 세로 방향인 경우는 행, 가로 방향인 경우는 열을 참조합니다.

① D7셀에 =@B2:B13*2라고 하면 7행의 값 30에 2를 곱한 30을 반환합니다.

 
② 인접 셀이 없는 D14셀에서 =@B2:B13이라고 하면 #VALUE! 에러가 발생합니다.

 
③ 그러나, =@B7:B18*2와 같이 왼쪽 셀이 범위 내에 있다면 

 
빈 셀이기 때문에 0이 반환됩니다.

 

다. 표에서의 사용 예

F1셀부터 G6셀까지 표를 만든 후 i2셀에 =표1[일수]라고 입력하면 i2셀부터 i6셀까지 동적 배열로 값이 채워집니다.

 
그러나, J2셀에 =@표1[일수]라고 입력하면 수식이 지원되지 않는다고 하면서 =표1[@일수]로 바꿀 것인지를 묻는데 예를 클릭하면

 
아래와 같이 J2셀에만 값 31이 채워집니다.

 

배열을 단일셀로 처리(final).xlsx
0.01MB

 

반응형