728x90
목차

1. IF 함수

2. 다중 IF문

3. SWITCH 함수

4. IFS 함수

 

엑셀의 논리 함수인 IF와 SWITCH는 논리식을 접수해서 조건부로 동작을 하는 함수입니다.

참과 거짓으로 구성된 논리식은 다양한 상황에 적용 가능합니다.
당연하지만 구조가 잘 잡혀 소스코드로 구성된 것과 비교할 수는 없지만, 엑셀이 접근성이 좋다는 것이 장점이 됩니다.

초보자라면 엑셀 조작과 기능, 기본함수와 IF를 배우면 실전에서 사용가능한 레벨이 됩니다.

논리연산자(=, >, <, >=, <=, <>)와 논리함수들(AND, OR, XOR, NOT)을 사용한 논리함수 IF와 SWITCH에 대해 보시죠.


 

320x100

 

1. IF 함수

 
IF(logical_test, value_if_true, value_if_False) : 논리식(logical_test)이 참이면 value_if_true을 아니면 value_if_False을 반반환한다.
 

  • logical_test : 논리식입니다. True (1)과 False (0)으로 결과가 나오는 논리식이나 숫자(0이 아니면 전부 True)가 사용됩니다. 값을 직접 입력하거나 셀을 참조할 수 있습니다. 문자는 #VALUE 에러를 발생시킵니다.
  • value_if_true : logical_test이 참 / True / 1 혹은 0이 아닌 숫자일때 반환할 값입니다. 문자나 숫자 값을 직접 입력하거나 다른 셀을 참조하거나 연산식이 들어갈 수도 있습니다. 입력하지 않으면 빈칸으로 출력합니다.
  • value_if_False : logical_test이 거짓 / False / 0 일때 반환할 값입니다. 문자나 숫자 값을 직접 입력하거나 다른 셀을 참조하거나 연산식이 들어갈 수도 있습니다. 입력하지 않으면 빈칸으로 출력합니다.

 

예시

IF("a"="b", 10, 0) → a=b가 거짓임 → 결과는 0
IF(10>1, 10, 0) → 10>1은 참임 → 결과는 10
IF(15, "abc", "def") → 15는 숫자로 True로 인식됨 → 결과는 abc

 
엑셀답계 표에서 응용하면 이렇게 됩니다.
기준인 "1500"과 값을 비교해서 크면 "초과" 작으면 "부족"을 출력합니다.
 

 
 

2. 다중 IF문

 
참과 거짓일때 출력하는 [Value_if_True]과 [Value_if_False] 자리에 함수를 입력할 수 있습니다.
이걸 이용하면 IF문은 연속적으로 사용할 수 있는 방법이 있습니다.
 
IF(logical_test, IF(logical_test, value_if_true, value_if_False), value_if_False)
IF(logical_test, value_if_true, IF(logical_test,value_if_true, value_if_False))
 
IF안에 IF를 다시 사용하는 건데 복잡해지는 건 어쩔 수 없지만 그만큼 할 수 있는 일이 많습니다.
능력이 강력하다라고 해야겠네요.

예시

A1 = 10, B1 = 5, C1 = 1
A2 = "A", B2 = "B", C2 = "C"

IF(B1 >3,IF(B1>7,"많음","보통"), "작음") → B1=5는 3보다는 크지만 7보다는 작음 → 결과는 보통
IF(A2="A",IF(B2="B",IF(C2="D","맞았어요","아쉬워요"),"틀렸어요"), "꽝입니다")
→ A2=A는 A이고, B2=B는 B이지만 C2=C는 D가 아님으로 → 결과는 "아쉬워요"

예제가 복잡하지요. 어쩔 수 없습니다. 복잡한 함수니까요.
언어를 배우지 않고도 다중 IF문을 쓰시는게 쉬운건 아닙니다.
제 예시를 복사해서 붙여넣어도 보시고 스스로도 변화를 주시면 고수가 될 것입니다.
 

 
 

3. SWITCH 함수

 
잘하는건 잘 하더라도 역시 다중 IF문은 너무 복잡합니다.
IF와 기능은 다릅니다. IF 쪽이 할 수 있는 일이 더 많아요.
하지만 어떤 경우에는 다중 IF문의 복잡한 피하고 약간 간소화해서 SWITCH를 사용할 수 있습니다.
 
SWICH(expression, value1, result1, [default_or_value2, result2]...) : expression이 value1일 경우 result1을 반환하고 value2일 때는 result2를 반환합니다. 다 없을 경우 default를 반환합니다.
 

  • expression : 비교할 대상입니다.
  • value1 : 비교할 값입니다. expression과 완전히 일치하는지 비교합니다.
  • result1 : value1과 같다면 반환할 값입니다.
  • default_or_value2 : expression이 value1과 다른 경우 비교할 값 value 2입니다.
    result 2가 없다면 마지막에 출력할 값이 됩니다.
  • result2 : value2과 같다면 반환할 값입니다.
  • value3, 4, 5 ... / result3, 4, 5 ... : 계속 추가할 수 있습니다. 126개까지 입력 가능합니다.

이게 복잡한 함수는 아닌데 인수를 계속 쓸 수 있는 특성 때문에 설명이 길어집니다.
예시를 사용해서 이어서 설명 드리겠습니다.
아래는 값을 기준표에서 찾아와서 옆의 점수를 출력하게 되어있습니다.
값 → 기준1, 출력1 → 기준2, 출력2 → ... 이런식으로 계속 비교해서 출력합니다.
마지막 까지 못찾을 때를 대비해서 쌍이 없는 숫자인 default를 넣어 둘 수도 있지만 아닐 수도 있습니다.
입력하지 않으면 빈칸으로 출력합니다.
 

 
SWITCH는 같은 숫자만 비교하기 때문에 크거나 작은 값을 조건으로 사용하는 IF문과 비교됩니다.
IF문쪽이 좀더 강력한 기능이기는 하죠.
하지만 사용조건이 맞으면 SWITCH는 입력하기가 쉬워서 필요없다고는 할 수 없습니다.
 
 

4. IFS 함수

 
오피스2019, 혹은 OFFICE365 최신 버전에서 업데이트된 함수입니다.
이름으로 알 수 있듯이 IF함수를 보강한 함수로 다중 IF문을 좀 더 간소하게 사용하기 위해 만들어졌습니다.
다중 IF문이 사용자에게 필요하지만 너무 길다는 단점을 개발진도 인식하는 모양이네요.
 
IFS([Something_True1, Value_True1,Something_True2,Value_True2,Something_True3,Value_True3, ... )
Something_True1이 참이면 Value_True1을 아니면 Something_True2를 검사해서 참이면 Value_True2를 반환합니다.
 

  • Something_True1 : 논리식입니다. True (1)과 False (0)으로 결과가 나오는 논리식이나 숫자(0이 아니면 전부 True)가 사용됩니다. 값을 직접 입력하거나 셀을 참조할 수 있습니다. 문자는 #VALUE 에러를 발생시킵니다.
  • Value_True1 : Something_True1 이 참 / True / 1 혹은 0이 아닌 숫자일때 반환할 값입니다. 문자나 숫자 값을 직접 입력하거나 다른 셀을 참조하거나 연산식이 들어갈 수도 있습니다. 입력하지 않으면 빈칸으로 출력합니다.
  • Something_True2 : 논리식입니다. Something_True1이 거짓이여야 동작하고 참이면 아예 검토도 되지 않습니다.
  • Value_True2 : Something_True2가 참 / True / 1 혹은 0이 아닌 숫자일때 반환할 값입니다. 이전에 참이면 아예 실행되지 않습니다.
  • 조건은 계속 뒤로가면서 입력할 수 있으며, 126개까지 입력이 가능합니다.

 
조건이 거짓이면 계속 뒤로 넘어가는 함수입니다.
조건이 126개 정도면 글자수가 단편소설 분량이 나올 것 같습니다. 사람이 쳐서 만드는 경우는 없을 것 같네요.
아래 예시를 보겠습니다.
 

참인지를 검사해서 계속해서 뒤로 넘어가게 됩니다.
=IFS(C3>=4.5,"A+",C3>4,"A",C3>3.5,"B+",C3>3,"B",C3>2.5,"C+",C3>2,"C",C3>1.5,"D+",C3>1,"D",C3>=0,"F")
 
이 함수의 단점 2개를 가지고 있습니다.
 

  1. 모든 조건이 아닐 경우 #N/A 에러가 출력됩니다. 에러 역시 엑셀의 출력값이지만 보기 싫을 수 있습니다.
    그럴 때는 조건을 다 쓰고 마지막에 =IFS(... ,1,"-") 이라고 입력하면 되겠죠. 다 해보고 아니면 "-"를 출력하니까요.
  2. 조건이 많아질 수록 순서나 입력이 틀리면 의도하지 않는 결과가 날 수 있습니다. 이건 어쩌면 이렇게 복잡한 함수를 사용하면서 필연적인 것일 수 있습니다.

 
 

반응형
728x90

 

 

SUM함수에 대해서 지난번에 집어 봤습니다. 간단한 상황이라면 SUMIF로 대부분 해결됩니다.
https://toast-story.tistory

 

엑셀(EXCEL)의 합을 계산하는 SUM 함수와 조건부 합계함수 SUMIF, SUMIFS

가격이나 갯수를 데이터를 분석할 때 가장 기본적인 분석은 합계를 구하는 것입니다. 엑셀을 배운다면 첫날 배우게 되는 SUM 함수는 그래서 자세한 내용은 넘어가는 경우가 많습니다. 기능을 좀

toast-story.tistory.com

 
컴퓨터에게 연산을 시킬 때는 최대한 단순한게 좋습니다.
그러나 상황에 따라서 2개 이상의 제약조건을 걸어 복잡해지져야 합니다.
그럴 때 사용하는 SUMIFS 함수입니다.
 

 

 

 

1. SUMIFS 함수

 
SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) 
 : 조건들을 입력하여 덧셈을 구합니다. 조건은 127개를 입력할 수 있어서 매우 긴 함수가 만들어질 수 있습니다.
최소한의 1개의 범위가 필요한데 어지간하면 많아도 3개 정도면 충분한데 그래도 함수가 많이 깁니다. 오류를 배제하기 위해 신중하게 만들어야 합니다.

  • sum_range : 합계를 구할 셀의 범위입니다.
  • criteria_range1 : 조건을 검사할 범위입니다. 범위에서 항목이 발견되면 sum_range에 있는 해당 값을 더합니다.
                              sum_range와 행 또는 열을 공유하여 오류가 나지 않도록 합시다.
  • criteria1 : 조건입니다. 그냥 단일한 값이면 "=" 연산으로 계산하지만 다른 논리연산자도 입력할 수 있습니다.
  • criteria_range2, criteria2, : 추가적인 조건입니다. criteria_range와 criteria의 순서로 연속적으로 입력하여야 합니다.

 
오른쪽의 표에 여러 부분에 조건을 거는 예시를 보여드리겠습니다.
 
① range에는 먼저 덧셈을 수행할 E4:E29 범위를 지정합니다.
② 조건 첫번째로 등급 D4:D29에서 A를 추출합니다. 텍스트를 직접 입력할 때는 쌍따움표 ""를 사용해서 입력합니다.
③ 이름인 C4:C29 안에서 "사과"를 셀번호 i4로 검색하도록 합니다.
④ 날짜항목에서는 "<="연산자를 &와 조건을 묶어서 "2월 8일 이전에"라는 조건식을 작성합니다.
⑤ 목록에서 "2월 8일 이전에 A 등급, 사과"의 수를 합하는 함수가 만들어졌습니다.
설명하자니 정말 길어지네요. 아래를 보겠습니다.
 

 

 

320x100

 


 

2. SUMPRODUCT 함수

 
이 함수는 본래 사용법과 배열함수로서 사용법이 있습니다.
배열함수로 사용하면 오늘의 주제이 조건합계를 구할 수 있습니다.
원래 사용법부터 알아보겠습니다. 기능은 "곱해서 더한다"입니다.
 
SUMPRODUCT(array1, [array2], [array3], ...) : 범위의 숫자들을 첫번째부터 곱해서 더합니다.
 
array1은 {1,2,3,4}이고 array2는 {5,6,7,8}입니다.
SUMPRODUCT로 이 두 배열을 연산하면 1*5 + 2*6 + 3*7 + 4*8이 됩니다.
단위변환 같은걸 할때 편리하게 사용할 수 있습니다.

 
배열함수로 사용하는 방법을 보겠습니다.
위에서 본 "2월 8일 이전에 A 등급, 사과"의 수를 합하는 함수를 SUMPRODUCT로 만들어 보겠습니다.
생각보다 간단한데요. SUMPRODUCT((조건1) * (조건2) *더할범위) 배열함수라서 Ctrl+Shift+Enter로 입력해야 합니다.
조건은 ()안에서 작성되어야 하고 열과 행이 맞아야 합니다. 그리고 조건 안에 오류가 하나도 없어야 합니다.
 

 
이 배열 함수는 하나씩 연산합니다. 
리스트를 하나씩 보면 "이름 = 사과" = trure(1), "등급 = A" = true(1)가 되니까 연산해서 1 x 1 x 20(갯수) = 20이 됩니다.
조건이 하나라도 틀리면 "이름 = 망고" = False(0)가 되서 0이 되기 때문에 더해지지 않습니다.
그럼 조건이 만족하는 수는 남게되고 결과적으로 조건합을 얻을 수 있습니다.
이런 원리로 SUMIFS와 같은 결과를 얻을 수 있습니다.
 

SUMPRODUCT 배열함수 원리

 


 
예전 버전의 엑셀에서는 SUMIF가 없었습니다.
SUMPRODUCT의 배열함수를 통해서 사용했었죠. 엑셀이 보다 대중화 되면서 SUMIFS가 업데이트 되었습니다.
따라서 지금은  SUMPRODUCT는 사용할 필요가 없습니다.
그래도 아직도 사용하시는 분들이 많아 한번 설명해 보았습니다.
새로 배우시는 분들이라면 SUNIF와 SUNIFS에 익숙해지는걸 추천합니다.
개인적으로는 좋아하거든요. 전혀다른 기능 두개가 합쳐서서 새로운 가능성이 보이는 것이 좋죠.
 
 
 
 

반응형
728x90

 

 

가격이나 갯수를 데이터를 분석할 때 가장 기본적인 분석은 합계를 구하는 것입니다.

엑셀을 배운다면 첫날 배우게 되는 SUM 함수는 그래서 자세한 내용은 넘어가는 경우가 많습니다.

기능을 좀 구체적으로 정리하고 파생함수인 SUMIF에 대해서 알아보겠습니다.

기본적으로 "="으로 시작해서 셀의 사칙연산을 입력할 수 있는데 이걸 쉽게 하는게 SUM입니다.

 

 

 

 

1. SUM 함수

 

SUM(value) : 입력된 모든 값들의 합을 구합니다. 셀이나 범위 혹은 숫자를 입력할 수 있습니다.

 

sum
좌우는 같은 같은 결과입니다.

 

범위는 넣는 것에 관해서 엑셀 도움말에서는 아래와 같이 설명합니다.

 

=SUM(A2:A6)은 =A2+A3+A4+A5+A6보다 입력 오류가 발생할 가능성이 낮습니다.

 

함수는 장점이 하나 더 있는데 범위 내에 문자 있는 경우 자동으로 배제 한다는 것입니다.

그런데 텍스트를 넣으면 오류가 나서 실수로 입력한 데이터를 발견하는게 좋을 수 도 있습니다.

상황에 따라서 선택이 될 수 있습니다.

 

 

SUM 함수는 SUM(A1:A10,D1:D10,20,21,"5",True) 이런식으로 입력하면 모든 숫자를 다 더합니다.

"5"는 숫자 5로 서식이 자동변환되며 TRUE = 1로 쳐서 더합니다.

쉼표를 이용한 다양한 범위는 20개까지 입력할 수 있습니다.

 

320x100

 

 

 

2. SUMIF 함수

 

단순히 덧셈을 수행하는 것이 아닌 조건을 가지고 합연산을 수행합니다.

규칙을 입력하는 방법을 알면 쉽게 사용할 수 있습니다.

 

SUMIF(range, criteria, [sum_range]) : 지정한 조건을 충족하는 범위값을 합산합니다.

  • range : 검사조건을 수용할 범위입니다. crieria의 조건을 검사합니다.
  • criteria : 검사 조건입니다. 특정 값과 같거나(=), 크고 작은(>, <) 논리 연산자를 수행합니다.
  • [sum_range] : 합계 연산을 실행할 범위입니다.(합을 구할 데이터들), 비워두면 range와 같은것으로 계산합니다.

 

왼쪽의 표에서 과일의 종류별로 합산하는 표가 오른쪽에 있습니다.

range인 이름 B4:B29 범위에서 Criteria의 종류가 같은 것을 고릅니다.

그럼 엑셀이 sum_range에서 같은 위치를 찾아서 더합니다.

따라서 range와 sum_range는 동일한 행 혹은 열 구성을 가져야 오류가 없이 계산이 됩니다.

 

 

숫자범위를 가지고 합을 연산하는 방법도 있습니다.

2월 3일 이전의 합계를 계산하도록 하는데 조건을 쌍따움표를 사용해서 입력해야 합니다.

"<="&조건 : & 연사자를 이용해서 논리연산자와 조건을 연결해야 작동합니다.

range의 날짜범위 B4:B29에서 G4날짜보다 작은 날짜만 더 합니다.

이 때도 조건에 맞는 행의 sum_range의 같은 행을 찾아서 더합니다.

 

적용 결과

 

 


 

SUM함수 같은 경우 많은 분들이 이미 많이 사용하고 있습니다.

그래도 정확한 사용법은 한번 알아보면 좋습니다.

연산식은 응용을 하면 사용법이 다양해 지고 효율적으로 문서를 작성할 수 있습니다.

문서가 도움이 되었으면 좋겠습니다.

 

 

 

반응형

+ Recent posts