본문 바로가기
꿀팁 모음/컴퓨터 생활

엑셀에서 배열수식, 논리식 등을 사용하는 방법

by 꿀팁창고지기 2020. 11. 1.

반복과정을 간단히 나타내기 위해, 매트랩에서는 행렬과 성분별 연산을 사용합니다. 이와 유사하게 , 엑셀에서는 배열수식이 있습니다. 또한, 엑셀에서, 산술연산뿐만 아니라 논리연산도 가능합니다.
이번글에서는, 배열수식, 논리식 등을 사용하는 방법에 대하여, 배열수식과 논리식의 조합, 논리식과 연산의 조합 등을 포함하여 말씀드리겠습니다.
배열수식은, 범위의 각 성분이 각각의 연산을 수행하는 것이며, 최종적으로, 각 성분에서의 연산결과값들로 구성되는 범위가 됩니다. 이 때 연산은 성분자체의 연산이나 외부객체와의 조합에 의한 연산이 될 수 있습니다.
엑셀에서 배열수식의 작성은, 모든 내용(범위, 연산자, ...)을 기입한 후, ctrl+shift+Enter (수식 중의 범위가 배열수식이 되게 함)를 누름으로써 작성되며, 전체 셀 내용의 좌우에 각각 '{', '}'이 표시됩니다(수식 구성내용 중의 범뮈가 배열수식이라는 것을 나타냄).
또한, 최종 수식값이 범위인 경우, 그 범위 크기만큼 영역을 지정 후, '=수식'을 기입합니다(이 영역에 최종값인 범위가 생성됨). 배열수식의 작성예(두 배열수식의 같은 성분사이의 곱하기 수행)는 다음과 같습니다.

단계 1 : 최종 수식값의 범위만큼 영역을 선택.


단계 2 : (Enter나 기일할 셀을 클릭 등을 하지 않고) 바로 '='를 누른 후( '='가 선택영역의 첫째셀에 기입됨), 배열수식 관련 범위를 선택.

단계 3 : '*'를 기입 후, 다른 배열수식 관련 범위을 선택.


단계 4 : ctrl+shift+Enter를 누름( 배열수식 연산이 수행되어, 최종수식값인 범위값이 처음 선택한 영역에 기입됨. 또한, 셀 수식내용의 좌우에 { }가 표시됨).


다른 배열수식 사용예들은 다음과 같습니다.

 

 

sin(배열수식)의 예 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

 

sin( 배열수식*배열수식 )의 예 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

 

배열수식과 연산은,각각 일반적으로, 배열수식에서의 연산은 수식의 마지막과정까지 이루어지지만, sum( ), match( )등의 함수 인자로 사용 시는, sum( )이나 match( )함수 등의 연산 수행 전에 배열수식 연산이 종료되어, 최종값인 범위가 됩니다(이후 이 범위에 대한 sum( )이나 match( )함수 연산이 이루어짐).
이러한 경우의 사용예들은 다음과 같습니다.

 

sum(배열수식)의 예 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

 

sum( 배열수식*배열수식 )의 예 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

또한, 위 사용예들의 대조 사례들은 다음과 같습니다.
대조사레 1 : sum(배열수식)에서 최종범위를 배열수식범위 크기만큼 지정한 경우는 sum값이 모든 범위에 반복하여 채워집니다.

 

sum(배열수식)에서 최종범위를 배열수식범위 크기만큼 지정한 경우인 대조사례 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

 

대조사례 2 : sum(배열수식*배열수식)에서 ctrl+shift+Enter를 누르지 않고 작성하여, 배열수식이 되지 않고 범위로 남아있으면, '*'연산이 이루어지지 않아 '*'연산이 범위들의 첫번째 성분에 대해서만 행하여져서,
첫번째성분들의 곱의 합, 즉 첫번째성분들의 곱이 됩니다.
[최종범위를 배열수식범위 크기만큼 지정한 경우(에도), 첫번째성분들의 곱이 첫째 셀에(만) 채워집니다]

 

sum( 배열수식*배열수식 )에서 ctrl+shift+Enter를 누르지 않고 작성한 경우인 대조사례

 

엑셀에서, 논리 작성과 관련하여, 명제는 '=' (와 같다), '<>' (와 다르다), '>' (보다 크다), '>=' (보다 같거나 크다)같은 비교연산자를 사용하여 작성합니다. 또한, 논리연산을 위해,
and( )함수 [예: and(A,B) : A이고 B이다], or( )함수 [예: or(A,B) : A이거나 B이다 ], not( )함수 [예: not(A) : A이지 않다],
xor( ) 함수[예: xor(A,B) : A이기만 하거나, B이기만 하다 (A,B 둘 다 인 경우, 즉 A이고 B인 경우는 아닌 것임) ] 같은 논리함수(논리연산자 아님)을 사용합니다.

이러한 논리의 논리값은 TRUE (참 임), FALSE (거짓 임)이 있으며, 각각, 1, 0과 같습니다. 또한, and(A,B)는, A,B 둘다 TRUE인 경우만 TRUE 이고, 나머지 경우(예: A가 TRUE이고 B가 FALSE)는 FALSE 이며,
or(A,B)는, A,B 둘다 FALSE인 경우만 FALSE이고, 나머지 경우(예: A가 TRUE이고 B가 FALSE)는 TRUE임을 알 수 있습니다.
그런데, 0*0=0, 0*1=0, 1*0=0, 1*1=1이므로, '*' 연산자 (즉, 곱하기 산술연산자)는 '그리고(and)' 의미의 논리연산자와 같다고 할 수 있습니다.

다중논리(즉 다중명제)를 성분으로 하여 구성되는 범위는, 배열수식들의 연산을 사용하여 쉽게 작성할 수 있습니다. 예를 들면, (b2=3 그리고 c2=2), (b3=3 그리고 c3=2), ...., (b7=3 그리고 c7=2) 내용으로 구성되는 범위는,
배열수식을 사용한 { (b2:b7=3) * (c2:c7=2) } 로 나타낼 수 있으며, 실제 예는 다음과 같습니다.

 

배열수식들의 '*'연산을 사용한 '그리고' 다중논리 구현의 예 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

또한, 함수의 인수에 배열수식이가 있으면서, (배열수식이) 1개의 논리이면 안되며, 따라서 배열수식이 1개의 논리이면 *1(즉 '그리고 참인 명제') 등을 하여야 합니다. 이러한 예와, 함수인수에 1개 논리의 배열수식을 사용하여 오류계산이 되는 대조예는 다음과 같습니다.

 

sum( 배열수식*1 )로 작성한 경우의 예 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

 

sum(배열수식)으로 작성하여 오류계산이 되는 대조예 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

 

논리조건과 조합된 함수(또는 작용)으로 다음과 같은 유형들이 있을 수 있습니다. 즉,
1. A*c : A이면, c (c는 숫자값임)
그렇지 않으면, 0

2. if(A,c,d) : A이면, c (c의 예: 숫자값, 문자값, ...)
그렇지 않으면, d

3. countif(논리범위,1) : 논리범위의 성분논리(즉 성분명제) 중에서 참인 경우의 개수를 셈. countif( ) 함수의 대상범위를 논리범위로, 찾을값을 1로 하는 것임.
이 방법은 sumif( ), averageif( ) 등과 vlookup( ), hlookup( ), index( match( ) ) [이 사이트의 '엑셀에서 countif( ), sumif( ), vlookup( ) 함수, index( match( ) ) 등을 사용하는 방법' 참조]
에도 유사하게 적용할 수 있습니다.

4. countifs(논리범위1,1,논리범위2,1) : 논리범위1의 성분논리가 참이고,앞 성분논리와 같은위치의, 논리범위2의 성분논리가 참인 경우의 개수를 셈. 이 방법은 sumifs( ), averageifs( ) 등에도 유사하게 적용할 수 있습니다.

 

이상의 방법에서, A는 논리(즉 명제)이며 논리배열수식도 될 수 있습니다(결과가 범위가 됨). 또한, 논리, 논래배열수식의 성분, 논리범위의 성분은 단일논리 뿐만 아니라 다중논리도 될 수 있다는 사실은 주목할만 합니다.
다중논리 범위는 논리 배열수식들 사이의 논리 연산으로, 용이하게 작성할 수도 있습니다.
이러한 논리조건과 조합된 연산의 대표적인 예시로서, '그리고' 다중논리 조건만족 시 해당하는 값을 반환하는 배열수식의 예와, 다중논리 범위(논리 배열수식들 사이의 논리연산으로 작성됨)와 index( match( ) )의 조합 예를 아래에 나타내었습니다.

 

'그리고' 다중논리 조건 만족 시 해당값을 반환하는 배열수식의 예

 

 

논리 배열수식들 사이의 논리연산으로 작성된 다중논리 범위와 index( match( ) )의 조합 예 (위쪽: 수식입력 화면, 아래쪽: 최종화면)

 

이상으로, 엑셀에서 배열수식, 논리식 등을 사용하는 방법에 대하여 알아 보았습니다~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글