본문 바로가기
엑셀

[엑셀] 배열수식에서 AND, OR, NOT 등의 논리연산 사용하기

by LightBlogger 2018. 7. 10.

AND


2017/07/13 - [엑셀] - [엑셀] 배열수식에 여러 개의 조건 사용하기에 다음과 같은 수식이 등장한 적이 있다.



조건1은 3이고 조건2는 b인 행의 값으로 만든 배열


=IF((A:A=3)*(B:B="b"),C:C)


배열수식에서 여러 개의 조건을 사용하려면 *(Asterisk) 를 사용하면 된다는 이야기였다.


위 예시는 말하자면 논리연산 AND 에 해당한다. 배열수식에서는 AND(조건1, 조건2) 대신 


(조건1)*(조건2) 


를 사용하는 것이다.


OR 나 NOT 도 이렇게 표현이 가능하다.



OR


OR에 해당하는 연산은 +로 표현한다. 


OR(조건1, 조건2)


(조건1) + (조건2) > 0



위의 예에서 조건1이 1이거나 조건2가 A인 값들은 다음과 같이 구할 수 있다. (배열수식의 값을 직접 보기 위해 셀 범위를 축소하였다)


=IF((A2:A10=1)+(B2:B10="a")>0,C2:C10)



F9 를 눌러 값을 확인해 보면 다음과 같다.



조건1이 1인 2, 4, 8의 값과 조건2가 a인 16, 128의 값이 나오는 것을 볼 수 있다.



NOT


NOT에 해당하는 연산은 1-(조건) 으로 표현한다.


NOT(조건1)


1-(조건1)


위의 예에서 조건1이 3이 아닌 값만 추출하는 수식은 다음과 같다.


=IF(1-(A2:A10=3),C2:C10)



F9 를 눌러 값을 확인해 보면 다음과 같다.



조건 1이 3이 아닌 값들만 나오는 것을 볼 수 있다.



두 가지를 조합할 수도 있다.


예를 들어 조건 1이 1 또는 3이 아닌 배열은 다음과 같이 만들 수 있다.


=IF(1-((A2:A10=1)+(A2:A10=3)>0),C2:C10)



F9 를 눌러 값을 확인해 보면 다음과 같다.



조건 1이 1도 3도 아닌(=2인) 값들만 나오는 것을 볼 수 있다.



NAND, XOR


그 외에도 NAND(부정논리곱: 둘 다 참은 아닐 때만 참을 반환) 은


(조건1) + (조건2) <>2


로, 


XOR(배타적논리합: 둘 중 하나는 참이고 하나는 거짓일 때만 참을 반환)


MOD((조건1) + (조건2), 2)=1


로 표현할 수 있다.







반응형

댓글