728x90
목차

1. 시트의 구성

2. 시트의 기본기능

3. 시트 그룹선택

4. 시트 이동/복사

 
엑셀을 스프레드 시트, 프로그램으로 시트를 사용해서 데이터를 배열하는 프로그램입니다.
우리는 엑셀의 기능로 데이터를 입력하거나 수정하는 기능을 공부했습니다.
엑셀 초보자가 집어보아야 할 기초적인 기능으로 시트를 입력하고 수정하는 기능을 다뤄 보겠습니다.
 
 

320x100

 
 

1. 시트의 구성

 
시트는 화면왼쪽 하단에 리스트가 표시됩니다.
선택된 시트는 강조되서 표시됩니다. 오른쪽에 "+" 는 시트 추가버튼입니다.
 

 
 

2. 시트의 기본기능

 
시트를 오른쪽 클릭하면 다양한 기능이 오픈됩니다.
하나씩 짚어 보겠습니다.
 

 
① 삽입 : 시트를 삽입합니다. 빈시트가 만들어지며 이름은 Sheet + 번호로 들어갑니다.
② 삭제 : 시트를 삭제합니다. 한번 삭제하면 Ctrl + Z(취소하기)로 살려지지 않습니다. 조심하세요
③ 이름 바꾸기 : 시트의 이름을 바꿉니다. 입력이 안되는 글자는 들어가지 않습니다.(\)

④ 이동 / 복사 : 시트를 이동하거나 복사합니다. (아래 따로 다루겠습니다.)
⑤ 코드보기 : VBA가 활성화 된 경우 개발도구를 엽니다.
⑥ 시트보호 : 시트를 잠급니다. 뭘 잠글지는 아래를 선택하여 됩니다.
기본적으로는 잠근 시트를 볼수만 있게 되어있습니다. 아래 스샷에 리스트가 있습니다.

⑦ 탭 색 : 탭에 색이 들어갑니다. 스타일은 못바꾸고 색만 변경 가능합니다.

 

 
 

3. 시트 그룹선택

 
Shift를 누른 상태에서 시트를 선택하면 시트를 여러 개 동시에 선택할 수 있습니다.
선택만해도 시트 그룹상태가 됩니다. 즉 시트 그룹은 여러개를 만들 수 없고 한번에 하나만 존재 합니다.
이 상태에는 값을 하나만 입력하면 선택된 시트 전체에 다 데이터가 들어갑니다.
수식입력에 유용한 기능입니다.

시트 두개가 묶인 상태

오른쪽 클릭하면 매뉴가 나오는데 가장 아래 "시트 그룹 해제"를 클릭하면 됩니다.

 
 

4. 시트 이동/복사

 
시트를 이동하거나 복사할 수 있습니다.
시트 부분에 마우스 오른쪽 클릭하면 이동/복사로 들어갈 수 있습니다.
아래 복사본 만들기를 누르면 복사하고 체크하지 않으면 그대로 이동합니다.
 

 
이 기능에는 열려있는 다른 문서로 시트를 옮기는 기능이 있습니다.
여기서 (새 통합 문서)를 선택하면 새로운 엑셀파일을 만들 수도 있습니다.
주로 이 시트 하나만 공유하고 싶을때 이렇게 파일을 만들어서 옮깁니다.
 

 
여기서는 주의사항이 있습니다.
새로운 시트를 만들면 어지간한 수식은 자동으로 옮겨지는데, 원래파일 - 다른시트에서 참고한 값은 
옮기고 나면 다른 파일의 값이 됩니다.
다른 파일의 값은 어지간하면 오류의 대상이 될 수도 있습니다.
특히 챠트의 경우 다른 시트의 값이 자연스럽게 들어가는 경우가 많습니다. 주의해야할 부분입니다.
 

반응형
728x90
목차

1. 필터 사용하기

2. 값으로 데이터 필터하기

3. 정렬(오름차순, 내림차순, 색 정렬)

4. 텍스트 필터

5. 숫자 필터

6. 색 필터

 
 
엑셀에 데이터를 입력하고 사용하면 점점 길어집니다.
일을 하면서 데이터가 많아지는 것은 당연한 일이지만 필요할 때 필요한 데이터를 찾지 못한다면 무용지물입니다.
원하는 것들을 보여주는 편리한 필터기능에 대해서 알아보겠습니다.
 

320x100

 
 

1. 필터 사용하기

 
필터를 활성화 시키는 순서
① DATA의 범위를 선택합니다. 선택하지 않아도 커서가 있는 근처를 자동으로 범위를 잡습니다.
하지만 안전한 사용을 위해 범위를 선택할 것이 좋습니다.
[데이터] - [필터]를 선택합니다.(단축키 : Ctrl + Shift + L)
③ 필터가 활성화 되면 열에 화살표가 생깁니다.
이 필터는 한 워크시트에 한개씩만 활성화 됩니다.
 

필터 활성화 하기

 

 
 

2. 값으로 데이터 필터하기

 
화살표를 누르고 원하는 데이터를 보면 해당 데이터로 필터가 됩니다.
필터 범위로 지정된 다른 값들도 영향을 받습니다.
전체보기를 두르면 다시 볼수 있습니다.
 

필터 선택

 

 

적용된 필터

 

필터가 적용되면 화살표가 필터표시로 바뀝니다.
이걸보면 데이터에 필터가 적용된 상태인지 알 수 있습니다.
 
Tip. 어떨때는 너무 조건이 많아서 필터가 어디 걸려있는지를 알 수 없습니다. 그럴때는 차라리 필터는 해제하세요.
처음부터 하는게 빠를 수도 있습니다.
 

 

 
 

3. 정렬(오름차순, 내림차순, 색 정렬)

 
오름차순이나 내림차순으로 정렬할 수 있습니다. 숫자나 가나다, abc 순으로 정렬합니다.
정렬은 필터가 적용된 범위내에서 다른 행열을 전부 정렬합니다.
다만 화살표가 있는 첫줄은 움직이지 않습니다.
 

색필터

 


색필터는 선택한 같은 색을 위로 정렬합니다.
선택되지 않는 다른 색들은 그냥 순서대로 있습니다.
 

정렬결과

 
 

 

4. 텍스트 필터

 
필터기능은 자기 행에 걸려 있는 것을 인식해서 텍스트인경우에는 텍스트 필터 기능을 활성화 시킵니다.
[필터 화살표] - [텍스트 필터] - {리스트}
사용자 지정 자동 필터가 열립니다. 여기서도 기능을 선택할 수 있습니다.
특정 글자와 같거나 다르거나 시작문자 / 끝문자 / 포함된 문자나 포함되지 않는 경우를 선택할 수 있습니다.
 

자동필터

 


 

5. 숫자 필터

 
내용이 숫자로 이루어져 있으면 인식해서 숫자필터를 활성화 합니다.
[필터 화살표] - [숫자 필터] - {리스트}
숫자 필터는 좀 더 다양합니다.
연산자(>, <, >=, <=)를 지정할 수도 있고 상위 몇번째까지를 지정할 수도 있습니다.
 

숫자필터

 
 

 

6. 색 필터

 
색필터는 원하는 셀 바탕색으로 필터를 합니다.
[필터 화살표] - [색 기준 필터] - {리스트}
정확하게 일치하는 색들만 모아줍니다.
 

 
 


 
이 필터 기능은 여러가지 기능이 있지만 사용법이 더 다양합니다.
다른 사람이 필터를 쓰는 것을 보면 순서나 기능이 제가 쓰는거랑 크게 달라서 재미있을때가 많습니다.
응용력이 높은 프로그램인 엑셀의 장점을 잘 보여주는 기능입니다.

반응형
728x90
목차

1. 참과 거짓 - True와 False

2. 논리 연산자와 논리연산자의 사용

3. 논리 함수들(AND, OR, XOR, NOT)

 

컴퓨터가 판단하는 결과는 딱 두개입니다. 참(1)이냐 거짓(0)이냐 중간은 없습니다. 컴퓨터니까요.

엑셀은 "조건부"라고 해서 판단하는 수식과 함수들이 많습니다.

IF 함수, SUMIF 함수등등 많은 경우 if가 붙어 있죠.(IF와 SWITCH 조건문)

엑셀에서 판단을 담당하는 논리 연산자와 함수들을 알아 보겠습니다.

 

 

320x100

 

1. 참과 거짓 - True와 False

 

엑셀은 TRUE() = TRUE = 0이 아닌 모든 숫자를 참으로 분류하고 FALSE() = FALSE = 0은 거짓으로 분류합니다.

특정한 위치 조건에서 참과 거짓의 성격을 가진 값을 함수로 가지고 있습니다.

 

TRUE() : "참"이라는 뜻을 지닙니다. 이 자체로도 인수가 없는 함수입니다. 그러나 그냥 "TRUE"라고 써도 됩니다. 이 함수는 엑셀과 호환가능한 다른 프로그램과 함께 사용할때 많이 사용됩니다.

FALSE() : "거짓"이라는 뜻을 지닙니다. 이 자체로도 인수가 없는 함수입니다. 그러나 그냥 "FALSE"라고 써도 됩니다. 이 함수는 엑셀과 호환가능한 다른 프로그램과 함께 사용할때 많이 사용됩니다.

 

다만 엑셀과 호환되더라도 다른 프로그램에서도 완전히 같은 방식을쓰지 않기 때문에 "참"과 "거짓"의 의미를 가지는 함수로 지원하는 것입니다.

Tip. 0이 아닌 숫자는 참이고 TRUE()도 참이지만, "TRUE() = 숫자"라고 입력하면 거짓으로 판정됩니다.

 

 

 

 

 

2. 논리 연산자와 논리연산자의 사용

 

엑셀이 지원하는 논리 연산자는 심플합니다.

아래 리스트에 정리했습니다.

 

이름 연산자 설명 사용예시
> 왼쪽이 오른쪽보다 크면 TRUE를 반환 10>1, 참
작음 < 왼쪽이 오른쪽보다 작으면 TRUE를 반환 10<1, 거짓
같거나 큼 >= 왼쪽이 오른쪽보다 같거나 크면 TRUE를 반환 10>=1, 참
같거나 작음 <= 왼쪽이 오른쪽보다 같거나 작으면 TRUE를 반환 10<=15, 참
같다 = 인수가 동일하면 TRUE를 반환 "a"="b", 거짓
다르다 <> 인수가 동일하지 않으면 TRUE를 반환 "a"="b", 참

 

Tip. 함수에 따라서 인수가 연산자를 허용하기도 하고 아닐 수도 있습니다.

예를 들어 IF(logical_test, [value_if_true], [value_if_false]) 함수의 경우 logical_test 자리에 논리를 사용할 수 있습니다.

SUM(range, criteria, [sum_range]) 함수처럼 범위를 다루는 경우 criteria 자리에 하나의 내용으로 입력해야 합니다.

IF 함수의 경우 =IF(10>1,1,0) ← 10>1이라는 연산자를 그냥 입력
SUMIF 함수의 경우 =SUMIF(A2:A8,"<"&A1,C2:C8) ← "<"&A1 라고 &연산자를 사용해서 하나의 값으로 입력

주의사항 정도로 익혀두면 됩니다.

 

 

3. 논리 함수들(AND, OR, XOR, NOT)

 

엑셀에서 다루는 논리 함수들입니다.

주로 여러개의 조건을 같이 사용할 때 유용합니다.

 

AND(logical1, [logical2]) : 인수가 모두 참이면 TRUE를 반환합니다. 하나라고 거짓이면 FALSE를 반환합니다.

OR(logical1, [logical2]) : 인수 중에 하나라도 참이면 TRUE를 반환합니다. 모두 거짓이면 FALSE를 반환합니다.

XOR(logical1, [logical2]) : 인수가 하나라도 거짓이면 TRUE를 반환합니다. 모두 참이면 FALSE를 반환합니다.

NOT(logical) : 인수가 참이면 FALSE를 반환하고, 인수가 거짓이면 TRUE를 반환합니다.

 

AND와 OR은 여러가지 논리연산자를 한번에 사용하도록 해주고 NOT 연산자는 조합으로 사용할 수 있습니다.

이걸 잘 쓰면 IF와 SWITCH(IFS 함수 포함) 다중 구문을 좀 단순화 할 수 있죠.

 

예시)

=IF(AND(A1=A4,B1=B4,NOT(C1=C4)),"합격","불합격") 

 → 이건 A1, A4과 B1, B4이 같으면서 동시에 C1은 C4와 달라야 합격인 조건입니다.

 


잡담.

사실 NOT은 거의 사용하지 않습니다.

연산자 자체가 =에는 반대되는 <>가 있고 >, <, >=, <=는 서로 반대이기 때문에 그냥 사용하면됩니다.

엑셀의 수식이 서로서로 얽혀서 not이 필요할 정도로 복잡해지는 경우는 거의 없습니다.

그래서 XOR로 2013버전에 추가된 신규함수에 속합니다.

주어진 기능을 다 사용해서 성능을 끌어올릴 수도 있지만 단순하게 활용하는 것도 편의를 위해서 좋습니다.

 

 

반응형
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
목차

1. 함수를 시작하는 연산자

2. 함수의 목록 보는 법

3. 함수의 구성

4. 상대참조와 절대참조

5. 참조의 이동

 

 

엑셀은 스프레스시트 프로그램으로서 글자를 쓰고 문서를 꾸미는 "워드프로세서"라고 하기에는 부족하고,

그렇다고 많은 양의 데이터를 보관, 분류, 사용하는 "데이터베이스"라고 하기에도 애매합니다.

그러나 세계 그 어느 워드프로세서나 데이터 베이스보다 많이 쓰이는 이유는 바로 이 함수기능에 있다 봅니다.

그래서 엑셀을 배울 때 표 형식으로 된 엑셀의 인터페이스에 익숙해지면 바로 함수를 배우게 됩니다.

 

오늘은 엑셀을 처음 배우시고 있는 분이 볼만한 내용을 포스팅 하고자 합니다.

뭐든 처음에는 거부감이 들 수 있지만 엑셀은 많은 사람들이 사용하는 만큼 처음 쓰는 분도 금방 익힐 수 있습니다.

 

320x100

 

1. 함수를 시작하는 연산자  = 

 

엑셀의 네모난 데이터 입력칸에 =을 입력하면 바로 함수가 시작됩니다.

키보드를 움직이거나 셀을 선택하면 참조영역이 움직입니다.

 

 

이 상태에서 사칙연산자 - +(더하기), -(빼기), *(곱하기), /(나누기)를 누르고 다음셀을 선택하면 최초의 함수가 완성됩니다.

함수를 입력하면 셀에는 함수의 결과 값이, 상단의 수식바에 함수내용이 입력됩니다.

F2 혹을 셀을 더블 클릭하면 함수가 참조하고 있는 셀이 시각적으로 표시 됩니다.

 

 

 

2. 함수의 목록 보는 법

 

사칙연산 말고도 엑셀이서 지원하는 함수는 상당히 많습니다.

전부 다 알수도 필요도 없고 자주사용하는 것 위주로 알면 됩니다.

 

 

수식바의 fx 버튼을 누르면 지원하는 함수의 목록을 볼수 있습니다.

설명이 친절하다고는 못해도 잘 나와있습니다.

엑셀을 시작하시는 분이라면 이 창을 한번 들려보기는 바랍니다.

주제별로 함수들이 분류가 되어 있습니다.

 

 

3. 함수의 구성

 

함수는 이름(값) 으로 이루어져 있습니다.

값을 하나 혹은 여러가지로 필수요소와 선택요소로 나누는데 필수요소는 없으면 함수자체가 실행되지 않고,

선택요소는 입력하지 않다고 기본값이 입력되어 있어 사용할 수 있습니다.

각각의 요소는 쉼표를 기준으로 나누어 집니다.

입력은 아래와 같습니다.

함수를 입력하는 동안 아래에 작은 창에서 함수가 동작 중이고 인자의 이름을 표시하여 도와줍니다.

 

ROUND(number, num_digits) : 숫자를 반올림 합니다.

 

  • number  : 반올림 할 숫자입니다.(필수요소)
  • num_digits  : 인수를 반올림할 자리수 입니다.

 

number - 반올림할 숫자는 직접 숫자로 입력해도 되고 다른 셀에서 가져와도 됩니다.

아래 사용 예를 보면 위에는 셀 A3의 값을 따라오거나 2.33333이라는 숫자를 직접 입력했습니다.

 

 

 

4. 상대참조와 절대참조

 

함수의 사용에는 익숙해지는 연습이 필요합니다.

함수의 사용법 중에 값을 입력하는 방법을 더 알아보겠습니다.

SUM 함수로 예로 설명하겠습니다.

 

SUM(number1,[number2],...) : 참조하고 있는 값을 전부 더합니다.

 

  • number1 : 더할 숫자를 입력합니다. 셀이나 셀의 범위 혹은 값이나 값들을 넣을 수 있습니다.
  • number2-255 : 추가 숫자, 셀 참조 또는 추가할 범위(최대 255개)

 

참조하고 있는 셀 값은 복사에서 붙여 넣으면 움직입니다.

아래 그림으로 설명하겠습니다.

위에 있는 셀을 선택하면 붙여 넣으면 붙여 넣는 위치에 따라서 참조하고 있는 셀도 움직입니다.

복사해서 아래 한칸에 붙여넣으면 참조범위도 아래 한칸씩 움직입니다.

이것이 상대참조입니다.

상대참조

이렇게 복사 붙여넣기 따라서 범위를 움직이지 않게 하는 것이 절대 참조입니다.

범위를 선택하고 F4키를 입력하면 절대참조 상태가 됩니다.

연속으로 F4를 클릭하면 행이나 열에만 걸어둘수 있는데 또 범위에 $를 직접 입력해도 같은 효과가 납니다.

 

 

5. 참조의 이동

 

함수에서 값이나 값의 범위를 입력한는 방법은 4가지가 있습니다.

 

엑셀 함수는 값이나 범위 255종류까지 입력이 가능합니다.

한계가 있는 것 같지만 상당히 많은 양으로 다 쓰는 경우는 아주 드믈것 같습니다.

  • 범위입력 : 범위로 입력하면 계산을 계산대로 수행하면서 1 종류로 칩니다.
    가장 쉬운 입력방법이지만 범위는 엑셀 내에서 전부 붙어있어야 합니다.
  • 각 셀의 입력 : 셀을 따로 따로 입력할 수 있습니다. 떨어져있는 셀을 입력할 수 있어 편리합니다.
    각각 한 종류로 칩니다. 범위와 셀을 따로따로 넣을 수도 있습니다.
  • 숫자들의 입력 : 숫자을 직접하나씩 입력합니다. 이 경우 숫자 하나가 한 종류가 됩니다.
  • 배열의 입력 : 중괄호인 {}안에 숫자들을 쓰면 배열이됩니다. 이 배열은 하나의 배열이 한 종류입니다.
    말 장난하는 것 같지만 배열은 고급 함수에서 중요한 존재가 되니 이 기회에 알아만 두세요

각 입력방법


알고 있는 내용을 최대한 포스팅 하고 싶습니다.

이미 아시는 분이 많기는 하지만 초보자를 위한 내용을 다루어 보았습니다.

 

 

반응형
728x90
목차

1. COPY : 복사하기 

2. 범위.PasteSpecial : 선택하여 붙여넣기

3. XlPasteType 형식 : 어느것을 선택하여 붙여 넣을지

4. XlPasteSpecialOperation 형식 : 연산하여 붙여넣기

 

엑셀은 워드프로세서이기도 하여 복사하여 붙이는 기능이 자주 사용됩니다.
가장 많은 컴퓨터 사용자가 쓰는 기능이 Ctrl + C / Ctrl + V가 아닐가 싶네요
VBA에서도 사용법을 알아두면 편합니다. 복사하여 붙어넣기를 어떻게 하는지 포스팅합니다.
 
 

1. COPY : 복사하기 

 
단일 셀이나 범위를 선택하고 복사를 합니다.
엑셀에서 셀 복사는 특수한 기능입니다.
복사를 하면 셀주위에 점선이 돌고 있고, 값이 클립보드에 들어가게됩니다.

엑셀의 값은 눈에 보이는 글자 뿐 아니라 셀의 색, 글자체등 정보들이 다 들어가기 때문에 양이 좀 됩니다.
이 상황에서 다른기능을 활성화하거나 셀에 글자를 쳐 넣으면 클립보드에 들어간 정보가 사라집니다.
그래서 EXCEL의 COPY는 항상 직후에 붙여넣기가 들어가야 합니다.

Range("B3").Select      ' 복사할 셀을 선택합니다.
Selection.Copy             ' 선택한 셀 복사
Range("B12").Select    ' 붙여넣을 셀 선택
ActiveSheet.Paste        ' 붙여넣기

셀을 선택하여 활성화 시키고 ActiveSheet.Paste 명령어를 통해 붙여 넣습니다.
이게 불편한게 COPY 할때는 Selection 명령어가 들어가는데 Paste는 ActiveSheet의 매개변수로 동작합니다.

 

320x100


 

2. 범위.PasteSpecial : 선택하여 붙여넣기

 
VBA에서는 선택하여 붙여넣기가 더 편합니다.
이 명령어는 옵션이 많은데 기능을 하나씩 보도록 하겠습니다.
 
expression.PasteSpecial (Paste, Operation, SkipBlanks, Transpose)
 

  • Paste : 셀에는 서식, 값, 수식등 다양한 값이 있습니다. 셀의 어떤 값을 붙여 넣을 선택합니다.
    XlPasteType 형식에서 선택하여 입력하며 이 형식은 아래에 추가 설명하겠습니다.
  • Operation : 붙여넣으면서 연산을 수행할지, 어떤 연산을 할지 선택합니다.
  • XlPasteSpecialOperation : 형식에서 선택하여 입력하며 이 형식은 아래에 추가 설명하겠습니다.
  • SkipBlanks : 복사한 셀 중 빈 셀이 있을때 빈 셀을 붙여 넣을지 결정합니다.
    (True : 붙여넣기 하지 않는다., False : 붙여넣는다., 기본값은 False)
  • Transpose : 붙여넣으면서 행열 바꾸기를 수행할 지를 선택합니다.
    (True : 행열을 바꿈, False : 행열을 교체하지 안고 그대로 넣습니다. 기본값은 False)

 
아래 예시는 가장 많이 쓰는 "값만 붙여넣기" 입니다.

 

Sub ex2()

    Range("E3:G4").Select	
    Selection.Copy		'선택한 셀을 카피합니다.
    Range("E8").Select		'복사할 위치를 선택합니다.
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, __
    Transpose:=False
    '값만 선택하여 붙여넣기를 실행합니다.
    
    Application.CutCopyMode = False	'복사한 셀들에서 복사 모드를 취소합니다.
    
End Sub

 

Tip. Application.CutCopyMode = False는 복사하려고 선택된 범위를 취소합니다.
VBA 코드가 길어지거나 종료되고 사용자가 실수로 Enter등을 눌러서 오류가 나는 것을 방지할 수 있습니다.
 

 

3. XlPasteType 형식 : 어느것을 선택하여 붙여 넣을지

 
엑셀 인터페이스에서 선택이 가능한 부분으로 선택하여 붙여넣기를 할 수 있는 여러가지 옵션입니다.
VBA에서 어떻게 쓰는지 알아보겠습니다.

 

 
VBA 선택하여 붙여넣기의 XlPasteType들 ()안은 코드번호입니다.
 

  • xlPasteAll(-4104) : 모든 것을 붙입니다.(이때 열너비 제외합니다.)
  • xlPasteAllExceptBorders(7) : 테두리를 제외한 모든 것을 붙입니다.
  • xlPasteAllMergingConditionalFormats(14) : 모두 붙여넣고 조건부 서식이 병합됩니다.
    모두 붙여넣기로도 조건부 서식이 붙여넣어 집니다.
  • xlPasteAllUsingSourceTheme(13) : 소스테마를 포함하여 모든것이 붙여넣어 집니다.
  • xlPasteColumnWidths(8) : 열너비만 붙여넣습니다. 다른기능에서 열너비는 붙여넣지 않음으로 이건 독립적으로 사용해야 합니다. 내용은 안 붙이지만 서식을 만들때는 빈도가 높습니다.
  • xlPasteComments(-4144) : 메모만 붙여 넣습니다.
  • xlPasteFormats(-4122) : 표현형식이나 글자색 같은 서식만 붙여 넣습니다.
  • xlPasteFormulas(-4123) : 수식만 붙여 넣습니다.
  • xlPasteFormulasAndNumberFormats(11) : 수식과 숫자 서식이 복사 됩니다.
  • xlPasteValidation(6) : 유효성 검사만 붙여 넣습니다.
  • xlPasteValues(-4163) : 값만 붙여넣습니다.
  • xlPasteValuesAndNumberFormats(12) : 값과 숫자서식만을 붙여 넣습니다.

 

 

 

4. XlPasteSpecialOperation 형식 : 연산하여 붙여넣기

 
연산하여 붙여넣기를 실행하고 또 연산을 어떻게 할지 선택합니다.
 

  • xlNone(1) : 계산기능을 수행하지 않고 일반적으로 붙입니다.
  • xlPasteSpecialOperationNone(-4142) : 계산기능을 수행하지 않고 일반적으로 붙입니다.
  • xlPasteSpecialOperationAdd(2) : 문자는 복사되지 않고 숫자는 기존 숫자에 더해집니다.
    20이 있는 셀에 10을 복사해서 붙여 넣으면 30이 됩니다.
  • xlPasteSpecialOperationSubtract(3) : 문자는 복사되지 않고 숫자는 기존 숫자에 뺍니다.
    20이 있는 셀에 10을 복사해서 붙여 넣으면 10이 됩니다.
  • xlPasteSpecialOperationDivide(5) : 문자는 복사되지 않고 숫자는 기존 숫자에 나눕니다.
    20이 있는 셀에 10을 복사해서 붙여 넣으면 2이 됩니다.
  • xlPasteSpecialOperationMultiply(4) : 문자는 복사되지 않고 숫자는 기존 숫자에 곱합니다.
    20이 있는 셀에 10을 복사해서 붙여 넣으면 200이 됩니다.

 
명령어를 직접 넣을 수도 있고 위에 설명에 ()안의 코드를 넣을 수도 있습니다.
코드를 넣으면 짧아집니다. 아래 두줄의 소스는 정확하게 같은 기능을 수행합니다.

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=-4104, Operation:=-4142, SkipBlanks:=False, Transpose:=False

 
 

반응형
728x90

 

VBA는 엑셀의 자체 내장 프로그램이라 엑셀의 시스템의 영향을 강력하게 받습니다.

정확하게는 엑셀을 활용하는 것이 VBA의 존재이유라고 할 수 있죠.

오늘은 셀을 이동하고 선택하는 코드들에 대해서 알아보겠습니다.

 

 

 

1. RANGE(셀주소)

 

 - 셀의 주소 혹은 범위를 나타냅니다.

RANGE("A1") 혹은 RANGE("A1:A10") 형식으로 ""(따움표) 안에 주소 이름을 넣습니다.

주소를 텍스트로 입력하는 방식입니다.

텍스트 형식의 변수로 바로 사용할 수 있습니다. 아래의 아주 간단한 예시를 보겠습니다.

 

Sub cell_ex()

    A = "A1:D10"    '범위
    Worksheets("sheet1").Range(A).Select '범위를 선택하라

End Sub

 

결과는 아래와 같습니다. - A1:A10을 선택했습니다.

 

선택하기

 

 

 

 

2. CELLS(행번호, 열번호)

 

 - CELLS(행번호, 열번호), 셀의 위치값을 숫자로 넣어 셀을 선택한다.

처음의 행이고 두번째가 열입니다.(X, Y) 좌표계가 익숙한 저는 가끔 헷갈리기도 함니다.

행번호는 왼쪽의 바의 번호 그대로고 열번호는 ABC순서대로 번호로 메겨집니다.

 

예) CELLS(3, 2) → B3, CELLS(5, 3) → C5 가 됩니다.

 

 

 

두개의 명령어를 비교하면 RANGE("셀주소")  ← 셀주소가 TEXT 형식이라서 연산이 안됩니다.

A1+1라고 입력하면 에러가 발생합니다. 하지만 (B2:C10)처럼 범위를 입력하기는 쉽습니다.

CELLS 값을 숫자로 넣기 때문에 CELLS(X + 3, Y + 2) 처럼 연산을 통해 이동할 수 있습니다.

하지만 CELLS는 범위를 넣는 기능이 지원되지 않습니다.

그래서 이런 것들이 가능하도록 필수적인 옵션 명령어 OFFSET과 RESIZE에 대해서 알아 보도록 하겠습니다.

 

 

 

3. OFFSET(행번호, 열번호)

 

 - 셀을 행번호와 열번호만큼 이동해 줍니다.

B2에 있는 칸을 E3로 입력해 봅시다. 행과 열이 가로세로만 구별되면 금방 익숙해집니다.

행번호와 열번호가 숫자로 들어가니 사칙연산도 가능하고 편리합니다.

Sub cell_ex()

    Worksheets("sheet1").Range("B2").Select                 'B2를 선택합니다.
    Worksheets("sheet1").Range("B2").Offset(0, 0).Select    'B2에서 안움직이고 그대로 있습니다.
    Worksheets("sheet1").Range("B2").Offset(2, 3).Select    'B2에서 행 2개 열 3개 이동해서 E4가 됩니다.

    Worksheets("sheet1").Cells(2, 2).Select                 'B2를 선택합니다.
    Worksheets("sheet1").Cells(2, 2).Offset(0, 0).Select    'B2에서 안움직이고 그대로 있습니다.
    Worksheets("sheet1").Cells(2, 2).Offset(2, 3).Select    'B2에서 행 2개 열 3개 이동해서 E4가 됩니다.

End Sub

 

 

이동경로

 

320x100

 

 

 

4. RESIZE(행번호, 열번호)

 

 - 주어진 셀에서 행번호와 열번호만큼의 범위를 지정합니다.

주의할 점은 RESIZE는 크기에 관한거라 1이 최소입니다.

0이나 음수를 지정하면 에러가 납니다.

Sub cell_ex()

    Worksheets("sheet1").Range("B2").Select                 'B2를 선택합니다.
    Worksheets("sheet1").Range("B2").Resize(1, 1).Select    'B2에서 안움직이고 그대로 있습니다.
    Worksheets("sheet1").Range("B2").Resize(2, 3).Select    'B2에서 행 2개 열 3개만큼을 선택합니다.

    Worksheets("sheet1").Cells(2, 2).Select                 'B2를 선택합니다.
    Worksheets("sheet1").Cells(2, 2).Resize(1, 1).Select    'B2에서 안움직이고 그대로 있습니다.
    Worksheets("sheet1").Cells(2, 2).Resize(2, 3).Select    'B2에서 행 2개 열 3개만큼을 선택합니다.
End Sub

 

 

범위선택

 

 

 

5. OFFSET과 RESIZE

 

이 두개는 같이 사용할 수 있습니다.

이동 후에 범위를 선택할 수 도 있지만 반대로 할 수도 있습니다.

자유도가 상당히 높습니다. 

Sub cell_ex()

    Worksheets("sheet1").Range("B2").Offset(2, 3).Resize(3, 2).Select
    Worksheets("sheet1").Cells(2, 2).Offset(2, 3).Resize(3, 2).Select
    
End Sub

 

 

여기까지를 익히면 셀의 이동은 자유자재입니다.

셀만 이동한다고 뭐가 되는건 아니지만 VBA의 기초가 되는 시작점이니 다루어 보았습니다.

그외에도 이동에 도움이 되는 옵션은 조금씩 더 있습니다.

하지만 오늘 기능으로 일단 다 구현이 가능할 것입니다.

필요에 따라서 다음에 모아서 다루어 보도록 하겠습니다.

반응형
728x90

 

데이터보면 그 양이 많고 적은지 알기 어려울 때가 있습니다.
순위를 알면 이 값들이 얼마나 크고 작은지 짐작할 수있습니다.
RANK 함수를 통해서 순위를 어떻게 뽑고 또 중복된 순위를 처리하는 방법을 알아 보겠습니다.
 

 
 

1. RANK 함수 사용하기

 
목록에서 순위를 뽑아주는 함수로 RANK, RANK.EQ, RANK.AVG 3개의 함수로 구성되어있습니다.
RANK는 RANK.EQ와 같은 함수입니다.
각각 크게 사용법이 다르지 않기 때문에 한번에 알아보겠습니다.
 
RANK.EQ(number,ref,[order]) : 주어진 리스트에서 순위를 구합니다. RANK와 같은 함수입니다.
 

  • number : 순위를 구하려는 수입니다.
  • ref : 순위를 확인하려는 리스트입니다. 숫자 목록의 배열 또는 참조입니다. 숫자 이외의 값은 무시됩니다.
  • order : 오름차순으로 순위를 볼지 내림차수로 볼지 결정합니다. 0 - 내림차수, 1 - 오름차수
  • 이 함수는 동일한 숫자가 있을때는 모두 같은 순위를 정수로 반환합니다.

 
RANK.AVG(number,ref,[order]) : 주어진 리스트에서 순위를 구합니다. 
 

  • number : 순위를 구하려는 수입니다.
  • ref : 순위를 확인하려는 리스트입니다. 숫자 목록의 배열 또는 참조입니다. 숫자 이외의 값은 무시됩니다.
  • order : 오름차순으로 순위를 볼지 내림차수로 볼지 결정합니다. 0 - 내림차수, 1 - 오름차수
  • 이 함수는 동일한 숫자가 있을때는 순위의 평균을 반환하여 소수점이 될 수 있습니다.

 
RANK.EQ와 RANK.AVE는 기본적으로 같은 기능과 용법을 가지고 있습니다.
차이는 리스트에서 동일한 중복된 숫자를 처리하는 방법인데요.
EQ는 모두 같은 자연수가 반환되니 이해하기 쉽습니다.
AVG는 바로 등수의 평균을 반영합니다. 2개 있을때는 ().5가 됩니다.
두 함수는 숫자가 같으면 등수가 모두 같다는 점은 동일합니다.

 

같은 수 일 때는 반환하는 방식이 다릅니다.

 

320x100

 
 

2. 중복된 순위를 없애는 방법

 
순위를 겹치지 않게 만들고 싶습니다. 문제가 되는 경우가 있습니다.
이럴때는 엑셀에서는 딱히 깔끔한 방법이 없습니다.
COUNTIF 함수를 사용해야 하고 조금 복잡하게 사용해야 하는데 방법을 소개하겠습니다.
(COUNTIF를 소개하는 링크)
 
=COUNTIF($C$7:C17,C17) - 범위에 앞쪽에는 절대참조 뒤에는 상대참조를 한 후에 아래로 채웁니다.
그럼 "리스트에서 선택할 셀 위에서 같은 값을 샘" 함수가 되게 됩니다.
즉, 처음 만나는 값은 무조건 1이고 똑같은 값을 다시만나면 2, 3 순으로 늘어나게 됩니다.
 

 

 
이걸 이용하면 순위를 고유함수로 사용할 수 있습니다.
RANK의 결과에 이 COUNTIF의 값을 더하고 1을 빼면 됩니다.(countif는 최소가 1임으로)
이런 방식을 사용하면 중복되는 등수가 없어 집니다.
 

 

중복된 순위 없애기

 

 
두 함수를 나누지 않고, 한칸에 모두 사용할 수도 있습니다.
이런 함수는 상당히 길어지지만 나누어 생각하면 이해할 수 있습니다.
=RANK.EQ(C17,$C$7:$C$23) + COUNTIF($C$7:C17,C17) -1
중복까지 제어하면 랭크함수의 마스터가 됩니다. 연습해 봅시다.
 
 
 

반응형
728x90

 

엑셀을 숫자로 되어있는 시간의 형태로 표현할 수 있습니다.

날짜를 지원하는 서식은 여기 포스팅했습니다. - 날짜서식과 날짜를 지원하는 함수(TODAY, DATE, YEAR, MONTH, DAY)

이어서 시간 서식에서는 값이 시간 분 초로 표시되며 이를 이용해서 연산과 함수기능을 지원합니다.

기본적으로는 셀에 HH:MM:SS 형식으로 입력하면 자동으로 시간서식으로 변환됩니다.

 

 

1. 시간 표시형식

 

시간 서식을 선택하는 법은 빠르게 상단의 "표시형식" 매뉴를 사용해도 됩니다.

셀을 선택하고 셀서식에서 표시형식의 시간을 선택하면 됩니다.

셀서식에서는 여러가지 형식을 지원하는데 24시간 방식이나, PM/AM 방식으로 선택할 수 있습니다.

시간 서식 설정하기

 

 

 

2. 시간 형식에 대해서

 

날짜 표시는 정수 1~2958465를 1900년 1월 1일 부터 9999년 12월31일까지를 표현합니다.

시간 표시의 최소단위는 초이고 시간은 하루가 86400초인데 이걸 소수점으로 표현합니다.

1초가 1/86400 = 0.0000115740740740741으로 시간을 표현합니다.

시간만 입력하면 1900년 1월 0일이라는 가상의 날짜가 됩니다.

하지만 날짜는 정수 시간은 소수점임으로 두가지 정보를 다 표현하는 것이 가능합니다.

예를 들어 2022-12-28 13:07:24은 숫자로는 44923.5468055556가 됩니다.

날짜와 시간을 모두 표현할 수 있는 머리가 좋은 방식이라고 생각합니다.

 

320x100

 

 

 

3. 시간 형식의 함수

 

시간 서식을 통해서 시간 함수들을 사용할 수 있습니다.

엑셀의 시간 함수들은 강력하다고는 하기 어렵고 기초적인 기능만을 제공합니다.

 

now() : 시스템의 지금 날짜와 시간을 가져옵니다. ()안은 비어있어야 합니다.

 

TIME(hour, minute, second) : 시간을 입력하는 함수입니다.

 

  • hour  : 시간을 나타내는 0에서 32767 사이의 숫자입니다. 23보다 큰 값은 24로 나눈 나머지가 시간으로 처리됩니다.예를 들어 TIME(27,0,0)은 TIME(3,0,0)이 되고 이 값은 0.125 또는 오전 3:00입니다.
  • minute : 분을 나타내는 0에서 32767 사이의 숫자입니다. 59보다 큰 값은 시간과 분으로 변환됩니다. 
    예를 들어 TIME(0,750,0)은 TIME(12,30,0)이며 이 값은 0.520833 또는 오후 12:30입니다.
  • second : 초를 나타내는 0에서 32767 사이의 숫자입니다. 59보다 큰 값은 시간, 분, 초로 변환됩니다.
    예를 들어 TIME(0,0,2000)은 TIME(0,33,22)이 되고 이 값은 0.023148 또는 오전 12:33:20입니다.

 

HOUR(serial_number) : 시간 값에서 "시"를 추출합니다.

 

  • serial_number : 시를 계산할 시간 값입니다. 기본적으로 시간서식을 입력된 셀을 선택합니다.
    따옴표로 묶은 텍스트 문자열를 직접 입력 할 수 있고, (예: "6:45 PM")
    시간을 소수섬 형식으로 입력 할 수 있습니다.(6:45 PM을 나타내는 0.78125)

 

MINUTE(serial_number) : 시간 값에서 "분"을 추출합니다.

 

  • serial_number :분을 계산할 시간 값입니다. 기본적으로 시간서식을 입력된 셀을 선택합니다.
    따옴표로 묶은 텍스트 문자열를 직접 입력 할 수 있고, (예: "6:45 PM")
    시간을 소수섬 형식으로 입력 할 수 있습니다.(6:45 PM을 나타내는 0.78125)

 

SECOND(serial_number) : 시간 값에서 "초"를 추출합니다.

 

  • serial_number :분을 계산할 시간 값입니다. 기본적으로 시간서식을 입력된 셀을 선택합니다.
    따옴표로 묶은 텍스트 문자열를 직접 입력 할 수 있고, (예: "6:45 PM")
    시간을 소수섬 형식으로 입력 할 수 있습니다.(6:45 PM을 나타내는 0.78125)

 

시간의 계산

 

시간은 정수가 아니라 소수점입니다. 따라서 (시간)+1은 24시간을 더하는 거라 값이 변하지 않습니다.

소수를 직접 더하면 되지만 0.5(12시간)등이 아니면 직관적으로 알기 어렵습니다.

따라서 시간을 입결한 셀끼리 연산하거나 time 함수를 사용합니다.

셀끼리 연산하거나 TIME 함수 활용하기

 

 

 

4. 시간 서식을 사용할 때 주의 할 점

 

서식을 입력할 때는 text 함수를 사용하거나 셀서식에서 사용자지정으로 선택할 수 있습니다.

이 때 시간의 "분"을 의미하는 "mm"은 날짜의 "월"을 의미하는 "mm"과 같습니다.

이때 분과 월을 구별하는 것은 시간과 함께 쓰는지 연도와 함께 쓰는지를 보고 구별합니다.

 

시간 서식 지정하기

 

 

 

 

반응형
728x90
목차

1. 모집단, 표본집단 왜 나누어야 하죠?

2. 표준편차의 활용

3. 표본집단의 표준편차(n-1 방식)의 의미

4. 표본집단의 표준편차(n-1 방식)의 한계와 극복하기

 
 
표준편차의 뜻과 계산에 대해서 지난번에 포스팅 했습니다.
표준편차는 의미는 쉽지만 사용함에 있어 설명을 추가로 필요합니다.
표준편차의 의미와 계산하는 방법은 아래링크를 참고하세요.

 

EXCEL 모집단과 부분집단의 표준편차의 구해보기(STDEV 함수들)

현실에서 데이터는 이론과는 다르게 여러가지 영향을 받아서 분포를 가집니다. 이런 DATA의 분포를 정확하게 분석하는 방법에 대해 설명드리고자 합니다. 1. 표준편차의 뜻 아래 A와 B 그래프로

toast-story.tistory.com

 


오늘은 모집단과 표본집단에 대해서 좀 더 자세히 알아보고 그 활용을 알아보고자 합니다.
두 개의 표준편차 공식이 달라 모집단의 표준편차 계산방식은 (n 방식), 표본집단은 (n-1 방식)이라고 설명하겠습니다.


 

모집단과 표본집단 표준편차 공식

 

※ 이번 포스팅은 이론적인 면도 있지만 제 경험과 의견을 기반으로 함을 미리 알려드립니다.
 

 


 

1. 모집단, 표본집단 왜 나누어야 하죠?

 
모집단은 대상의 모든 데이터이고 표본집단은 데이터의 일부만 조사한 경우입니다.
따라서 표본집단은 모집단의 안에 포함된다고 볼 수 있겠네요.

 

표본집단

 

모집단의 경우에는 데이터를 전수조사한 경우입니다. 모집단이 보통 같지만 오히려 표본집단을 많이 씁니다.
왜냐면 모든 사건이 일어났는데 분석하는 건 늦었을 때가 많기 때문이죠. (그래도 어느정도는 사용합니다.)
비교적 표본집단의 데이터만 얻게 되는 경우가 더 많습니다.
 

  1.  모집단 전체의 데이터를 얻기에는 너무 많고 조사하는데 시간이 많이 필요한 경우
      예) 한국인 모두의 설문조사
  2.  데이터가 시간에 의해 발생하는데 미래의 데이터를 미리 측정할 수 없는 경우
      예) 수요일의 사당역 이용자수 - 다음주 수요일이 항상 존재함으로 지금까지 데이터를 전부라고 할 수 없습니다.
  3.  데이터를 측정하는데 시료가 파괴되는경우
      예) 휴대폰 새로운 모델 액정의 파열강도 - 시료를 전부 검사하고 나면 사용할 다른 시료를 만들어야 합니다.

 
가만 생각해보면 거의 모든 경우에는 모집단 이란 건 없는 거나 다름없죠.
미래에 생길 일까지 포함하면 전부 측정하는 것은 불가능합니다.
그래서 표본집단을 분석하는게 도움이 됩니다.
 
 

 

2. 표준편차의 활용

 
아래의 그래프에서 A는 산포가 넓고, B는 산포가 좁습니다.
그래프 안의 빨간 점선이 기준일 때  A그래프의 산포군에서는 점선을 넘는 데이터가 발생하고,
B 그래프에서 가망이 없어 보입니다.(확율이 너무 낮아서 0이나 다름 없든지)
 

산포의 예시

 

 

표준편차를 알면 과거 시점 혹은 다른 곳에서 측정한 데이터를 기반으로 사건이 일어날 확율을 미리 예상 할 수 있습니다.
정규분포에서는 표준편차의 3배가 넘어는 경우 0.3%이하 표준편차의 6배가 넘는 일은 0.0004% 이하로 떨어진다고 합니다.
산포의 모양이 정규분포만 있는건 아니지만 대략적으로 표준편차의 배수로 예상할 수 있습니다.
 

320x100

 
 

 

3. 표본집단의 표준편차(n-1 방식)의 의미

 
모집단의 표준편차(n방식)은 사전적인 의미 그대로 입니다.
중요한건 표본집단의 표준편차인데요. 수학적인 증명은 하지 않고 설명만 드리겠습니다.
 

  1. 아래 그림처럼 커다란 모집단에서 표본집단을 한번 측정한다고 하겠습니다.
  2. 만일 이 표본집단을 여러번 측정한다면 모집단의 크기에 점점 가까워집니다.
  3. 이 상황을 수학적으로 전개하면 표본집단을 무수히 측정했을때 그 값은 n-1 방식에 수렴합니다.
    (적은 수로 실험해도 반복하면 표준편차는n-1방식에 접근합니다.)

 

n-1 방식

 
"n-1 방식 - 표본집단 표준편차는 집단의 일부로 전체 표준편차를 예상한 것"입니다.
 

모집단과 표본집단

 

 

즉, 표본집단의 표준편차 공식으로 우리는 아직 측정하지 않은 다른 데이터가 존재할 확율을 구할 수 있습니다.
제품이라면 기대성능의 확율, 선거의 후보당선이나 주식의 변화를 예상하는데 사용됩니다.
(공정의 식스시그마, 주식의 볼린저 밴드 등에서 사용되는 기법입니다.)
 
 

 4. 표본집단의 표준편차(n-1 방식)의 한계와 극복하기

 
툭하면 일기예보는 안맞고 아무리 전문가라도 주식은 다 틀립니다.
이제 표준편차라는 강력한 도구가 있는데 어째서 한계가 있을까를 알아야 합니다.
예측은 예측일 뿐이라는 편안한 표현으로 넘기지 말고 원인을 공부해서 대책을 세워 봅시다.
 


① 데이터가 집단을 대표할 수 없을때
 
예를 들어 출퇴근 시간에 대해서 조사를 해 보겠다고 하겠습니다.
하기를 보면 표본집단이 하나의 요소(교통수단) 쏠려 전혀 집단을 대표하지를 못합니다.
 

중심이 치우친 신뢰성이 없는 데이터

 


② 극복하기 위해 데이터의 대표성을 확보하기
 
이런 경우에는 데이터를 조사할 때 오른쪽처럼 되도록 강제로 유도할 필요가 있습니다.
유도하려면 인자를 잘 알고 있어야 할 것입니다.
자동차를 타는 사람과 자건거를 타는 사람들을 똑같은 수로 모으면 데이터의 대표성이 향상됩니다.
 

중심을 확보하여 적은 수로도 신뢰성 있는 데이터

 


③ 데이터는 결국 많을 수록 믿을 만합니다.
 
위는 극단적이고 살짝 현실적으로 생각해 보겠습니다.
보통의 경우 현상이란 통제가 어려운 인자 여러개가 작용한 결과입니다.
따라서 우리는 표본집단이 충분히 제어되는지 알기 어렵습니다.
그럴때는 오른쪽 처럼 많이 조사 집단을 크게 하는 것이 답이 될때가 많습니다.
무식하다고 생각하실지 모르지만 이런 경우에는 양으로 밀어 붙이는게 현장에서 가장 잘 쓰는 방법입니다.
 

조사의 횟수를 늘리는 것이 결국 답

 


④ 표준편차를 사용할 수 없을 때 - 데이터가 불연속 적일때
 
인자의 데이터가 불연속 적인 경우가 있습니다.
이런 경우에는 표준편차의 적용이 어렵습니다.
 

이런걸 예상해서 미리 준비하기는 어렵습니다

 

예를 들어 습도는 어느이상 포화되면 이슬이 맺이게 됩니다.
정밀한 화학 실험에서는 포화 전후가 완전히 다른 양상을 보이게 될 것입니다.
그 외에도 일반적인 사물이 깨지는 현상, 얼거나 기화되어 상이 변할 때 등등 연속적이지 않은 현상이 있습니다.
사실 이런 경우에도 여러가지 해결방안이 있습니다.
구간을 나누거나 다른 지표를 사용해서 대체 하거나 하는 방법으로 컨트롤 합니다.
이건 여러분야에서 연구됩니다. 주식에서  갑작스러운 적대적 M&A, 날씨에서는 가까운 곳에서
화산 폭발처럼 갑작스러운 현상들을 예측하려 노력하는 사람들이 있습니다.
불연속적인 데이터를 관리하는 정규적이지도 않고 요령과 감이 필요하며 내용도 너무 깁니다.
다음에 기회가 된다면 소개하고 싶네요.
 


⑤ 표준편차를 사용할 수 없을 때 - 예상을 뛰어 넘을 때
 
예상을 뛰어넘을 때라고 말할수도 있고 비선형성이 너무 심할때 라고 표현할 수 있습니다.
현실에서는 정규분포에서 벗어난 인자가 그 동안 관측되지 않았지만 오늘 처음 일어난 인자가 존재합니다.
그 인자가 너무 비선형적이라면 예측이 지극히 어렵습니다.
아래 그래프의 빨간 박스영역을 관측하고 그 외의 영역을 예상하는 건 거의 불가능 할 것입니다.

이런 경우도 이론만 따지면 수학적으로는 대응이 가능합니다.
하지만 현실적으로 예상해서 움직이기가 어려운 케이스라고 볼수 있습니다.
(시물레이션 모델이 우수하다면 알아낼지도 모르죠.)
 
 

 

4. 데이터는 얼마나 확보를 해야 하나요?

 
우리는 산포와 예측에 대해 고민하보면 결국 이 질문에 도달합니다.
통계학적으로 n>=30개 이면 유의미한 데이터를 얻을 수 있다고 합니다.
하지만 현실적으로 여러 인자들에 의해 표본집단에 대해 보장을 할 수 없어 30개로 부족합니다.
그렇다고 무작정 많이 하라는 것은 아닙니다. 가능한 인자를 제어하는 게 중요합니다.
예로 기계(인자)가 여러 대 일 경우 3대 이상을, 다수의 사람들이 만드는 패턴이라면 최소 주말과 평일을 나누어서 데이터를 수집해야 합니다.
최대한 다양한 데이터를 얻는 것이 미래의 사고를 예방할 수 있습니다.
 
그러나 도무지 비용적인 한계가 있는 경우가 있습니다.
그럴 때는 이론과 모델링을 통해서 피해를 최소화하며 검증해야 하겠죠.
가능하기는 하지만 통계를 통해 미래를 예측하는 것은 어렵습니다. 저 역시 현실의 비용과 시간한계속에서 시험의 양과 인자를 제어하는 건 항상 시행착오가 있습니다.
 


여기까지 표준편차의 통계적인 활용과 한계에 대해서 설명드렸습니다.
늘 안타까운게 기술 개발 현장에서 개인적은 생각은 교육을 많이 받는 사무직 직원들은 정말 통계값을 잘 활용하지만,
비교적 현장 관리자들은 공식만 보고 겁을 먹고 공부도 잘 하지 않는 것 같습니다.
현실적으로 통계학이론으로 한계가 있는 점은 많지만 그래도 잘 알고 활용한다면 강력한 툴이됩니다.
한 사람이라도 도움이 되기를 바라며 포스팅 해 보았습니다.
 

반응형

+ Recent posts