분류 전체보기
- 10. 조건식 다루기( 셀조건-고급필터, DSUM /함수속 조건식-IF, 조건부서식/함수속 2인자로 조건식- ~IF(S) / 다중조건 적용) 2018.03.23
- 참고 : 데이터분석 8가지방법 + 사용자지정 표시형식 + 조건부서식 정리 2018.03.22
- 9. 데이터 가독성 높히기 (표시형식 / 조건부 서식) 2018.03.22
- 8. 데이터 정리에 요긴한 필수 기법 Best7 (2) 2018.03.21
- 7. 데이터 정리에 요긴한 필수 기법 Best7 (1) 2018.03.21
- 참고 : 되돌리기 4개 (Discard/ Reset - Hard/Mixed / Revert(Reverse) 정리 2018.03.20
- 4. 가상머신(Ubuntu16.04)에 Pycharm 사용을 위한 각종 세팅하기 2018.03.17 1
- 6. 필터로 골라보기( 기본 / 숫자/색 기준), 바꿔주기(bad데이터), 그룹 데이터 만들기, 자주하는 작업 2018.03.17
- 참고 : 데이터집계함수 및 if/ifs 정리 2018.03.16
- 5. 데이터 집계함수 5개 / 조건에 따른 집계 함수3개 / 여러조건에 따른 집계함수 3개 2018.03.16
- 7. 선택한버전은 취소한 뒤 남겨두고, 직전버전으로 돌아가는 Revert(Reverse) 2018.03.16
- 6. 이미 commit했었던, 지난버전으로 되돌리기(Reset - Hard/Mixed) 2018.03.16
- 5. commit전, 현재 수정사항 취소 후 가장 최신버전으로 되돌리기(discard) 2018.03.16
- 4. 수식, 함수식으로 엑셀 자동화하기 2018.03.16
- 3. 웹 크롤링 개발환경 만들기(VirtualBox /Ubuntu16.04/가상환경/python/BeautifulSoup4 설치) 2018.03.16
조건식의 2가지 유형
1. 어떠한 기능에다가 조건식을 넣는 유형
2. 어떠한 함수에다가 조건식을 넣는 유형
조건의 형식 3가지
실습
셀 조건을 실습해보자. 셀 조건이라는것은 시트속의 셀에 조건을 표현해놓고 이용하는 것이다.
이러한 셀조건과 연동이 가능한 것은 [고급필터]와 [ D데이터베이스함수]이다.
자동필터를 써서 직접 클릭해서 사용했지만. 이번에는 고급필터를 쓴다.
고급필터는 [데이터 - 정렬 및 필터 - 고급필터 - 다른장소에 복사 ]를 선택하고
목록범위는 데이터이름을 포함한 첫행까지 잡아줘야한다.
조건범위는 조건에 맞는 데이터이름을 가진 첫행까지 포함하여 셀조건을 선택한다.
복사위치는 조건에 맞는 놈들로 구성된 데이터를 만들 첫셀을 지정해준다.
고급필터 뿐만 아니라 D로 시작하는 데이터베이스 함수도 셀조건을 이용한다.
그중 DSUM()함수는 인자로서,
=DSUM(열이름을 포함한 데이터범위, "조건에따라 합을 구할 열이름", 열이름 포함 셀조건)이 들어간다.
IF함수에서는 조건식이 첫번재로 인자로 들어간다. 한 셀에 대해 IF함수를 연습해보자.
=IF(E18>1000000, "100만원초과", "100만원 이하")
조건부서식을 통해 조건식을 적을 때는, 먼저 열이름 제외 데이터를 선택하고 나서 [홈-조건부서식-새규칙]을 건다
그리고 [수식을 사용하여 서식을 지정할 셀 결정]을 눌러서,
=()안에 첫번째 인자에, 첫번째 셀(첫행)을 기준으로 $열 고정시킨다음, 조건을 걸어줬었다.
기본급 열이 200만원 이상인 것만 조건부서식을 활용해 주황색 채우기를 해주자.
=( $E4 >= 2000000)
~IF, ~IFS함수에서 조건식을 사용해보자.
COUNTIF( 조건범위 , "조건내용")
=COUNTIF(E4:E38, ">=2000000")
여기까지 정리해보면)
1. 셀조건은 셀 안에 조건식이 들어있는 것이며 (고급필터 OR DSUM()함수)
2. IF함수나 조건부서식은 함수안에 1개의 인자로 조건식이 들어있다.
3. COUNTIF는 2개의 인자(기준 + 조건)를 합쳐서 조건식을 완성시킨다.
각 조건형식의 특징들
다중 조건을 적용하는 방법
실습
셀조건의 셀을 세로로 배치하여 --> OR연산으로 조건식을 사용해보자.
셀조건으로 기술팀 OR 영업팀을 고급필터로 걸러서 새로운 데이터를 만들어보자.
목록범위는 열이름포함 전체데이터 / 조건범위는 세로로 배치된 셀조건 / 복사위치는 새로운 위치에 넣어주자.
셀조건안에 함수를 포함하는 조건수식을 만들어보자.
기본급이 평균보다 것을 셀조건으로 만들어보자. 가로로 배치되어있으니, 고급필터에서 AND연산으로 작용될 것이다.
>=AVERAGE(E4:E38)
확인결과 값이 이상하게 나온다. 평균이 160만원임에도 불구하고, 160만원 이상인 데이터들이 안나왔다.
***셀조건에서 함수가 포함된 조건식을 넣을 때는 = ">=" & 함수( )로 작성해줘야한다.
조건연산자는 ""쌍따옴표로 묶고 함수는 &로 연결해준다.
=">=" & AVERAGE(E4:E38)
다시 고급필터를 적용할 때는, 새로운영역에 해주자.
(나 같은 경우에는, SHIFT+자동채우기핸들 위로 올리기로 해당 구역만 삭제했다)
함수속 조건식(IF/조건부서식)에 AND나 OR연산자를 사용해보자.
여기서는 조건부서식에다가 기존조건을 편집해서
=()가 아닌 =AND( 조건1, 조건2)의 방식으로 열고정+첫행으로 조건식을 작성해보자.
=AND( $E4>= 2000000, $E4<3000000 )
이제 IF함수안에서 다중조건식을 만들어보자.
=IF(AND(E17>1000000, E17<=2000000), "100만원이상~200만원이하", "---")
조건에 따라 참/거짓에 따라 다른값을 지정할 수 있는 함수 2가지
IF함수는 많이 사용해왔다.
IFERROR함수는 TRUE/FALSE와 관계없이
오류발생안하면 그 값을 반환 / 오류가 생길시 특정 값
IFERROR 함수 실습
IFEEROR()함수에 일부러 에러가 나도록 식을 만들어보자. 숫자를 0으로 나게 해서 오류를 발생시켜보자.
기본급을 교통비로 나누고, 0으로 나누어서 오류가 나면, "에러"를 표시하자
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
11. 기술통계, 피벗테이블, 부분합 (0) | 2018.03.24 |
---|---|
참고 : 조건식의 여러유형 (0) | 2018.03.23 |
참고 : 데이터분석 8가지방법 + 사용자지정 표시형식 + 조건부서식 정리 (0) | 2018.03.22 |
9. 데이터 가독성 높히기 (표시형식 / 조건부 서식) (0) | 2018.03.22 |
8. 데이터 정리에 요긴한 필수 기법 Best7 (2) (0) | 2018.03.21 |
참고 : 데이터분석 8가지방법 + 사용자지정 표시형식 + 조건부서식 정리
데이터정리 8가지 방법
1. 필터로 빈데이터 수정(ctrl+enter) or 시트행 삭제
2. 필터로 비유효데이터 수정or 삭제
3. 필터로 데이터 그룹화 열 만들어주기
4. if중첩 or vlookup으로 데이터 그룹화 열 만들어주기
- if함수의 3번째 인자인 거짓일때의 입력값에 다시 if를중첩해서 사용하여, 데이터를 그룹화 할 수 있다
- VLookup의 인자로는 ( 평가할 셀, { 구간에 대한 배열;들을 오름차순 }, 2, 1) 순으로 온다. 이 때, 2, 1은 고정된 값이라 생각하면된다.
=VLOOKUP(E2, { 0,"C";1500000,"B";2500000,"A" }, 2, 1)
- VLookup함수로 조회할 때는, 인자의 순서가 아래와 같다.
=VLookup ( 조회할 셀, 조회할 셀이 1열에 포함된 조회데이터 범위, 조회데이터의 추출열 번호, 0)
5. 텍스트나누기로 구분기호가 명확한 데이터 나누기
6. 텍스트 추출하기
구분자 직전까지 추출 : Left( 대상 셀, Find("구분자", 대상 셀) -1)
구분자 뒷부분을 추출 : Right(대상 셀, Len(대상셀) - Find("구분자", 대상 셀))
*MID함수는 (대상셀, 시작위치, 갯수)
*find만 대상셀이 뒤쪽인자가 되며, 왼쪽에서부터 구분자까지의 문자열 수를 반환한다.
7. 텍스트 변환하기
(1) 연산을 위한) 문자열숫자 -> 숫자 방법 : 텍스트나누기 - 일반 / value()
(2) 연산을 위한) 문자열날짜 -> 숫자 방법 : 텍스트나누기 - 날짜 / datavalue() + 셀서식
(3) 추출을 위한) 숫자 -> 문자열로 : text( 해당셀, "###" ) - "#,###" "####.#"
(4) 추출을 위한) 날짜 -> 문자열로 : text( 해당셀, "yyyy-mm-dd" )
8. 중간셀에 참조할 셀이름 입력하여, 중간셀 이용하기 - INDIRECT함수
- INDIRECT( 참조할 셀이름이 적힌 중간셀
사용자지정 표시형식
#,##0, "천원"
yyyy"년" mm"월" dd"일" aaaa
#,###;(#,###);"-";@
;;;@
;;;
조건부 서식에서 [ 수식을 지정하여 서식을 지정할 셀 결정 ] 을 이용해, 행단위로 셀 채우기
데이터의 범위를 선택한 뒤, =( ) 안에 조건이 될 기준열은 고정 $E + 첫번째 행을 기준으로 작성으로 조건 수식을 만든다.
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
참고 : 조건식의 여러유형 (0) | 2018.03.23 |
---|---|
10. 조건식 다루기( 셀조건-고급필터, DSUM /함수속 조건식-IF, 조건부서식/함수속 2인자로 조건식- ~IF(S) / 다중조건 적용) (0) | 2018.03.23 |
9. 데이터 가독성 높히기 (표시형식 / 조건부 서식) (0) | 2018.03.22 |
8. 데이터 정리에 요긴한 필수 기법 Best7 (2) (0) | 2018.03.21 |
7. 데이터 정리에 요긴한 필수 기법 Best7 (1) (0) | 2018.03.21 |
9. 데이터 가독성 높히기 (표시형식 / 조건부 서식)
데이터 읽기 좋게 만들기
데이터의 표시형식을 바꾸어서 읽기 좋게 해줄 수 있다.
홈- [표시형식] 탭을 활용하거나 [셀서식](CTRL+1)로 빠르게 표시형식 지정이 가능하다.
- 숫자에 천단위 구분기호는 [숫자 - 1000단위 구분 기호 사용]을 체크한다.
실습
숫자데이터에 [홈 - 표시형식] 의 다운드롭을 입혀서 [회계]를 선택하여 금액으로 표시해보자.
이제 2014-04-02의 날자데이터를 [ 표시형식 - 자세한 날짜]로 바꿔보자. 요일까지 표시가 된다.
이제 셀서식을 이용해서 날짜의 표시형식의 여러양식들을 보자.
셀서식 - 사용자 지정 형식 TOP4
1번에서 마지막 aaaa는 요일을 의미한다.
2번에서는 마지막 천단위를 끊어주는데, 마지막은 0을 넣어서 [ 천 이하의 단위는 무시]하겠다는 의미이다.
3번을 해석해보면 ) 양수는 천단위 끊어서 ; 음수는 -없이 괄호안에, 0은 -로 ; 텍스트는 그대로 사용한다는 의미이다.
그 밑에껀) 양수는 천단위 끊어서; 음수는 괄호안에 ; 0은 비워두고 ; 텍스트는 그대로
4번을 해석해보면 ) 숫자를 무시하고 텍스트만 그대로 표시
그 밑에껀) 양수는 천단위 끊어서 ; 음수는 -를 달고 천단위로 끊어서; 0은 -로 ; 텍스트는 무시(숫자만)
실습
사용자 지정 형식을 이용해서 기본급 데이터를 , 천단위씩 끊어서 마지막 "천원"으로 표시되도록 바꾸어보자.
보기를 보면서 확인해본다.
#,##0, "천원"
이번에는 교통비를 양수/음수/0/테스트의 형식을 지정해주자.
이상애텡서 텍스트를 안보이게 하려면, 마지막 텍스트 형식란을 비워버린다.
#,###; (#,###);"-";
다시 이상태에서, 텍스트란만 남겨보자.
만약 표시형식을 다 비워두면 어떤 결과가 나올까?
표시형식에서 보는 방법을 안보이는 것으로 선택한 것이다. 실제데이터는 존재한다.
이러한 방식은 셀을 가려놓을 때 사용하자.
조건부 서식을 이용해서 데이터를 구분해서보자.
조건부 서식을 적용할 셀(들) 선택 => [홈 - 조건부서식 - 규칙관리 - 새규칙 ]을 통해 적용할 서식을 정해주자.
여기서 [다음을 포함하는 셀만 서식지정]을 선택하여 조건을 작성하고 특정서식을 지정해준다.
(조건부 서식 주기, 수정하기, 삭제하기 는 모두 해당 데이터들을 선택한 상태에서 가능하다)
행 단위로 구분해서 보이게 하는 방법은, 전체데이터를 선택한 다음, [홈 - 조건부서식 - 규칙관리 - 새규칙]에서 [수식을 사용하여 서식을 지정할 셀 결정]을 사용하자.
이 규칙이 가장 유용한 규칙이다. 이 때, 수식을 이용하여 조건을 만들어 줄 때, 선택한 데이터의 첫 행(1개의 열이면 첫 셀)을 기준으로 조건식을 작성한다.
그리고 기준이 되는 열에는 $E2 와 같이 열이 고정이 되어야한다(열만!)
지정한 조건부수식을 수정하려면, 마찬가지로[ 홈- 조건부서식 - 규칙관리]로 가서 [규칙 편집]을 선택하면 된다.
이 때, 상단에 위치한 규칙이 우선순위가 높다.
실습
홈- 조건부서식 - 규칙관리 - 새규칙 - [다음을 포함하는 셀만 서식 지정]을 이용해,
기본급이 200만원 이상인 셀만 노란색 칠을 해주자.
다음으로 기본급에 새규칙을 추가해서. [수식을 사용하여 서식을 지정할 셀 결정] 을 선택한 뒤, 수식을 직접 적어주자.
이 때, 수식을 적용하는 방식은 =( ) 안에 넣어준다. 그리고 첫 행(셀)을 기준으로 작성해야한다.( 그 이후의 행들이 알아서 지정된다)
이 때, 첫 행(셀)은 E4이다.
1열만 적용시킬 때는 안해줘도 되는데, E4의 E앞에 $를 넣어 E열을 고정시키자. 왜냐하면 규칙의 적용대상을 테이블로 확장시킬 경우, 기준이 되는 E열을 고정 시켜야한다.
=($E4 < 1000000)
이제 선택된 테이블 단위의 데이터를 행단위로 조건부서식을 주고싶다. 이 때, 열 단위로 준 조건부서식의 적용대상을 넓히면 된다.
이 때, 조건의 기준이 되는 E열은 $E로 고정되어있어야 한다( 안되어있으면, 직접 가서 E4 -> $E4로 바꿔야 제대로 나옴)
위 사진은 $E4가 아니라 E4로 작성하였다. 하나의 열이면 상관없지만, 적용 대상을 테이블단위로 넓히면 에러가 난다.
이제, 기본급이 200만원 이상인 행만 조건부서식을 걸어 색칠하자.
항상, =( ) 안에 기준열은 고정 $E + 첫번째 행을 기준으로 작성 4 으로 조건 수식을 만든다.
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
10. 조건식 다루기( 셀조건-고급필터, DSUM /함수속 조건식-IF, 조건부서식/함수속 2인자로 조건식- ~IF(S) / 다중조건 적용) (0) | 2018.03.23 |
---|---|
참고 : 데이터분석 8가지방법 + 사용자지정 표시형식 + 조건부서식 정리 (0) | 2018.03.22 |
8. 데이터 정리에 요긴한 필수 기법 Best7 (2) (0) | 2018.03.21 |
7. 데이터 정리에 요긴한 필수 기법 Best7 (1) (0) | 2018.03.21 |
6. 필터로 골라보기( 기본 / 숫자/색 기준), 바꿔주기(bad데이터), 그룹 데이터 만들기, 자주하는 작업 (0) | 2018.03.17 |
8. 데이터 정리에 요긴한 필수 기법 Best7 (2)
데이터 추출하기 2
데이터를 추출할 때, 구분자가 명확한 경우에는 앞서 사용한 텍스트나누기를 사용하면 되지만,
구분자가 명확하지 않은 경우는 Left, Right, Mid의 추출함수들과 find함수, len함수를 중첩해서 쓴다.
***find함수는 대상이 되는 셀이 2번째 인자로 온다.그리고 반환결과는 왼쪽에서부터 몇번째 자리수인지를 알려준다.
find에다가 구분자를 찾을 문자열로 넣으면, 구분자까지를 포함해서 추출하니, -1 +1 등을 해주면 된다.
***만약 구분자 뒷부분을 가져오고 싶다면 Right함수에다가 Len함수를 이용해 전체길이-(구분자까지길이)로 구하면된다.
정리)
구분자 직전까지 추출 : Left( 대상 셀, Find("구분자", 대상 셀) -1)
구분자 뒷부분을 추출 : Right(대상 셀, Len(대상셀) - FInd("구분자", 대상 셀))
실습 - 데이터 추출하기
위 데이터에서 출생년도를 구분해보자.
=LEFT(A2, 2)
출생월 을 가져오고 싶다면, 가운데이므로, mid함수를 써야한다.
=MID(A2, 3, 2)
생년월일을 추출해보자. 구분자 앞까지만 가져오면 되므로
left를 이용해서 왼쪽부터 6개를 뽑아와도 된다.(=LEFT(A2, 6)). 하지만 구분자를 이용하기 위해서
left함수에 find함수를 충첩해서 사용해보자.
=LEFT(A2, FIND("-",A2)-1)
주민번호 뒷자리를 추출해보자. 뒤에서부터 7자리를 가져오면 되지만(=RIGHT(A2, 7))
뒤에서 부터 잘라와야하기 때문에, right 함수에다가 전체길이 -구분자까지의 길이를 가져오면 된다.
=RIGHT(A2, LEN(A2) - FIND("-",A2))
[텍스트 나누기]를 통해 데이터 변환하기
문자열 1을 ['1으로 입력]---> 숫자1로 바꾸는 것은
데이터-데이터나누기-[텍스트 나누기]를 통해 2단계에서 [공백]으로 설정, 3단계에서 [일반]을 누르면 문자열을 숫자로 바꿀 수 있다.
데이터변환 함수 정리
*숫자 형식은 문자열로 바꿀 때 꼭 들어가는 서식이다.
*datavalue는 활용할 수 없는 날짜 정보를 주므로, date나 month, day함수를 중첩해서 사용한다.
cf)셀서식은 데이터자체가 아니라 보이는 모양만 바꿔주는 것이다.
cf) 날짜를 계산할 때는, datevalue()를 쓰지만,
텍스트로 날짜들을 구분(yyyy-mm-dd)하고 싶을 땐, 날자->문자열 + 숫자형식으로 바뀐 뒤->문자추출함수를 사용하는 것이 일반적이다.
cf) 실제 데이터의 양식을 보고 싶다면 [Ctrl + `]를 이용해서 확인한다.
실습
문자열로 적힌 숫자들을, 연산하기 위해서는 숫자데이터로 바꾸어야한다.
먼저 문자열로 적힌 숫자를 ---> 숫자로 바꾸는데, [텍스트나누기-공백-일반 ]을 활용해보자.
이제 똑같은 데이터를 변환함수를 이용해서 문자<-->숫자 데이터를 변환해보자.
문자열 숫자--> 숫자로 바꾸는 것은 value()함수.
이번에는 숫자데이터를 -> 문자열로 바꾸어보자.
주민번호나 생년월일, 전화번호로 같은 숫자정보들에 [문자 추출함수 len,left,mid,right,find]함수들을 사용하기 위해서 문자열로 바꾼다.
이 때 사용하는 함수는 text함수이다. 2번째 인자 숫자형식에다가는 눈에보이는대로의 형식을 #을 이용해 넣어준다. "###" 등을 넣을 수 있다.
2000이 2,000으로 표시해야한다면, text()함수의 숫자형식에 "#,###" 으로 넣어준다.
3000.1 같은 경우 "####.#" 으로 입력해줘야 소수점이 표시된다.
날짜처럼 보이는 문자열을 ---> 날짜데이터로 변환하는 것이 datevalue()함수다.
하지만 날짜가 아닌 값(1990.1.1부터 계산한 날 수)을 반환하기 때문에, 셀서식[ctrl+1]로 날짜 서식을 줘야한다.
[텍스트나누기]를 이용해서 문자열 --> 날짜로 바꿔보자.
[텍스트나누기] - [공백] - [날짜]를 선택해서 바꿔주자.
이번에는 날짜 ---> 문자열로 바꿔보자.
숫자 ---> 문자열로 바꿔 추출함수를 사용할 때도, text()함수를 썼으나, 날짜도 동일하다.
숫자형식만 달라진다.( 숫자는 "#", 날짜 "yyyy-mm-dd")
=TEXT(E17, "yyyy-mm-dd")
중간 셀에 있는 [ 셀이름형식의 문자열 ] ---> [ 참조셀로서 값 반환]해주는 INDIRECT함수( 중간셀 )를 사용해보자
예를 들어, 중간 셀인, 연초록 J3셀에 있는 "문자열(H2)"를 실제로 찾아가서 참조하고 싶을 땐,
INDIRECT( J3)를 사용하면 실제 H2값이 참조되어 반환된다.
INDIRECT( 중간셀 ) --- 중간셀에 있는 문자열을--> 참조 셀로 읽어온다. --- 참조셀 값을 반환
=INDIRECT(J3) + 200
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
참고 : 데이터분석 8가지방법 + 사용자지정 표시형식 + 조건부서식 정리 (0) | 2018.03.22 |
---|---|
9. 데이터 가독성 높히기 (표시형식 / 조건부 서식) (0) | 2018.03.22 |
7. 데이터 정리에 요긴한 필수 기법 Best7 (1) (0) | 2018.03.21 |
6. 필터로 골라보기( 기본 / 숫자/색 기준), 바꿔주기(bad데이터), 그룹 데이터 만들기, 자주하는 작업 (0) | 2018.03.17 |
참고 : 데이터집계함수 및 if/ifs 정리 (0) | 2018.03.16 |
7. 데이터 정리에 요긴한 필수 기법 Best7 (1)
데이터 정리하기 7가지
if함수와 VLookup 으로 그룹 데이터 만들기2 ( 1번째는 필터로 나누어, 새로운 열에 그룹을 만들어줬음.)
- if함수의 인자로는 (조건, 참일 때의 입력값, 거짓일 때의 입력값)이다.
- if함수의 3번째 인자인 거짓일때의 입력값에 다시 if를중첩해서 사용하여, 데이터를 그룹화 할 수 있다.
- VLookup의 인자로는 ( 평가할 셀, { 구간에 대한 배열을 오름차순 }, 2, 1) 순으로 온다. 이 때, 2, 1은 고정된 값이라 생각하면된다.
VLookup함수에 대해서
원래 VLookup함수는 대표적인 조회함수 이다.
조회시 인자의 순서는 (조회할 셀(값), 조회데이터의 범위, 조회데이터의 특정 열 번호, 0)을 입력한다.
마지막인자가 1이 되면, 유사한 값을 찾을 때 주는 인자인다. 보통은 0으로서 정확한 값을 찾아온다.
***VLookup함수의 규칙으로서 조회데이터의 첫번째 열이 자동으로 기준열이 된다.
실습 1 - if문 또는 vlookup으로 데이터 그룹화 하기
if함수를 써서 데이터를 특정열에 그룹화해주자.
기본급을 구간에 따라서 A,B,C로 표시되도록 중복IF문을 써보자.
=IF(E2<= 1500000, "C", IF( E2 <= 2500000, "B", "A"))
VLookup을 사용해서 똑같이 그룹화를 해주자.
- 여기서는 특정 데이터구간에서 조회하는 것이 아니므로,
{} 대괄호를 이용하여 구간을 오름차순으로 정리하되, 세미콜론(;)으로 각 구간을 직접나누고,
마지막 인자 2개에는 2, 1을 넣어줘야한다.
=VLOOKUP(E2, { 0,"C";1500000,"B";2500000,"A" }, 2, 1)
확인결과 if문을 중첩해서 만든 것과 동일하게 등급을 확인할 수 있다.
if문을 많이 쓰지만, vlookup이 더 오류가 적다.
실습2 - vlookup을 통해 조회하기
교육성적표 중에, 유지범이라는 사람이 무슨팀에 속해있는지 vlookup함수로 조회해보자.
VLookup함수로 조회할 때는, 인자의 순서가 아래와 같다.
- VLookup ( 조회할 셀, 조회할셀이 1열인 조회데이터 범위, 조회데이터의 추출열 번호, 0)
그러므로 조회할데이터는 유지범이 1열로 구성되어있어야한다.
추출열은 조회데이터 범위에서 1,2,3,4 순으로 세어야한다. 팀명은 2번째 열에 있다.
데이터- 데이터도구- 중복된 항목제거 사용하기
실습3- 중복된 항목제거
아래 보이는 것과 같이 강상택 과장의 데이터가 중복되어있다.
먼저, 중복된 항목을 제거할 데이터범위를 지정해준다.
그리고 데이터- 데이터도구- [중복된 항목 제거]를 클릭한다.
중복되는 기준을 선택할 수 있다. 이 중에 이름, 근무팀, 직위만 검사항목으로 지정해준다.
데이터 - 데이터도구 - [텍스트 나누기]를 사용해 데이터 나누기
텍스트나누기를 선택한 뒤,
1번째 단계에서는 구분기호로 분리됨을 선택해준다.
2번째 단계에선 공백을 선택해서, 공백기준으로 데이터를 나눈다.
3번째 단계에선, 일반적으로 [일반]을 선택하면 된다. 만약 숫자데이터도 텍스트로 받아오고 싶다면 [텍스트]를 선택하면 된다.
실습4 - 텍스트나누기(데이터나누기) - 구분기호가 명확할 때,
공백으로 나누어진 시/군/구 주소 데이터를 나누어보자.
데이터범위를 지정한 뒤, 데이터-데이터도구-[텍스트나누기]를 선택하자.
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
9. 데이터 가독성 높히기 (표시형식 / 조건부 서식) (0) | 2018.03.22 |
---|---|
8. 데이터 정리에 요긴한 필수 기법 Best7 (2) (0) | 2018.03.21 |
6. 필터로 골라보기( 기본 / 숫자/색 기준), 바꿔주기(bad데이터), 그룹 데이터 만들기, 자주하는 작업 (0) | 2018.03.17 |
참고 : 데이터집계함수 및 if/ifs 정리 (0) | 2018.03.16 |
5. 데이터 집계함수 5개 / 조건에 따른 집계 함수3개 / 여러조건에 따른 집계함수 3개 (0) | 2018.03.16 |
참고 : 되돌리기 4개 (Discard/ Reset - Hard/Mixed / Revert(Reverse) 정리
- Discard : 현재 파일수정후 저장된 상태에서,commit을 하지 않았다면, 다시 직전버전의 파일로 돌아갈 수 있다.
- Reset - hard : 선택한 버전으로 돌아가고, 현재 파일상태와 상관없이, 그 이후의 버전+파일들은 다 삭제
- Reset - mixed : 선택한 버전으로 돌아가고, 현재 파일상태는 uncommited changes로 남겨둔다.
- Revert(Reverse) : <최근버전부터 순차적으로> 선택한 버전을 취소하지만 Revert로 새로만들어남겨두고, 그 직전버전으로 돌아간다.
- 타임라인(Repository)에 Revert가 있다면-> 그 직전버전으로 돌아간 것
'개발공통 > Git과 SourceTree' 카테고리의 다른 글
9. 브랜치 병합(merge) / 충돌 해결 및 최소화 (0) | 2018.03.25 |
---|---|
8. 브랜치 소개 / 만들어보기 (0) | 2018.03.24 |
7. 선택한버전은 취소한 뒤 남겨두고, 직전버전으로 돌아가는 Revert(Reverse) (0) | 2018.03.16 |
6. 이미 commit했었던, 지난버전으로 되돌리기(Reset - Hard/Mixed) (0) | 2018.03.16 |
5. commit전, 현재 수정사항 취소 후 가장 최신버전으로 되돌리기(discard) (0) | 2018.03.16 |
4. 가상머신(Ubuntu16.04)에 Pycharm 사용을 위한 각종 세팅하기
BeautifulSoup vs Scrapy
- BeautifulSoup은 html문서를 쉽게 파싱 / 자동으로 유니코드로 변환하여 UTP-8로 출력 / lxml, html5lib파서 이용
- soup = BeautifulSoup( html_doc를 담은 변수, 'html.parser') 형태로 html문서를 넣은 파서를 만들고
soup.태그명 = 해당 태그 전체 / soup.태그명.name = 텍스트만 출력 / soup.태그명.parent.name = 부모태그명
soup.find_all(태그명) = 해당 태그명을 가진것 전체 / soup.find( 특성속성(id) = "특정속성 값") = 특정 속성명 가진 것 가져오기
- re.로 정규표현식을 이용해서 데이터를 가지고 올 수 있다.
- find_all()안에 리스트형태[]로 넣으면 여러개의 태그 전체를 가져올 수 있다.
- css에서 많이 쓰는 class속성에 대해, soup.find_all( "태그명(a)", class_ = "클래스명")처럼, 언더바(_)를 붙혀서 css 클래스만 선별할 수 있다.
- 이미지태그 역시 find_all을 통해 img태그만 불러와서 처리한다. - Scrapy는 웹 스크래퍼 프레임워크 / 다양한selector지원 / pipeline으로 데이터 후처리(펄터링 등)/ 로깅 / 이메일을 보내주는 기능
우분투에 파이참 설치
1. 자바8을 설치한다
http://webnautes.tistory.com/939
2. 파이참을 다운로드하고, 터미널에서 다운로드 폴더로 이동한뒤, 해당 tar.xz파일을 풀어준다.
풀어진 새로운 폴더 > bin 폴더로 이동한 뒤, sh pycharm.sh로 실행시켜본다. (스크립트 런쳐폴더는 /usr/local/bin/charm)
http://hunit.tistory.com/268
3. 파이참을 실행한 상태에서, tools > desktop entry 를 통해 dash에서 파이참이 검색되도록 한다.
검색하여 찾은 파이참을 launcher에 바로가기를 만든다.
4. 게스트cd삽입으로 가상머신과 호스트컴퓨터 사이 복붙 가능하게 만든다.
https://extrememanual.net/8257
(Ctrl shift v)
6. 한글도 설치해주자.
http://ngee.tistory.com/326
[우분투 전체환경]에서 설치한 파이참에, [각종 라이브러리들을 설치한 가상환경]을 연결해주기
https://doc.scrapy.org/en/0.24/intro/tutorial.html 를 통해, 튜토리얼 문서를 열고 공부를 해보자.
1. 프로젝트를 실행할, 가상환경으로 들어와서, tutorial이라는 스크래피 프로젝트를 만들자.
2. 파이참을 켜서 File>open을 이용해 생성한 프로젝트를 열어보자.
- items는 어떤 데이터를 들고 올 때, 그 데이터를 class형태로 만들 수 있다.
- pipelines는 데이터를 들고 온뒤, 후처리해줄 것이다.
- settings는 봇이름 및 스크래피 설정들을 한다
- spiders 폴더에 크롤링할 내용들을 기입할 것이다.
***scrapy모듈이 import안되는 것을 확인할 수 있다.
파이참은 루트에서 설치되어 실행되는 것이므로, 우리가 각종 라이브러리를 설치한 가상환경을 세팅해줘야한다.
3. 가상환경에서 만든 파이참2.7 크롤링 환경을, 우분투 전체 파이참에서, Project interpreter로 지정해줘야한다.
File> setting > Project : tutorial > Project interpreter > 세팅버튼 > Add local.. > Existing environment
파이참을 통해 어떠한 프로젝트를 열 때, 이렇게 내가 미리 만들어둔 가상환경을, 프로젝트의 interpreter로 연결해줘야한다.
가상환경의 경로는 가상환경명 이다.
가상환경이 설정되면, scrapy모듈의 오류가 없어진다.
스크래피 맛만 보기
스크래피의 사용방법은 [웹 크롤링 - Scrapy & Selenium]을 통해서 익히도록하자.
*spiders폴더의 spider파일명/class명은 크게 중요하지않다. 그 안의 변수 name/allowed_domains/ start_urls가 중요하다.
start_urls 는 리스트형태로, 여러개의 사이트를 넣을 수 있다. 각각의 사이트에 대해서 파싱을 순서대로 시행해준다.
*parse함수에서는 reponse.url.split("/")[-2] 를 통해서, 끝에서 2번째 /의 텍스트를 가져올 수 있다.
*parse함수에서 with open(filename, 'wb') as f: 를 통해 filename으로 파일을 하나 생성하고, f변수를 이용해서 f.write하여 파일을 쓸 수 있다. f.write(response.body)를 하면 사이트의 전체 html코드를 가져와 파일로 생성해준다.
*** 파이참의 terminal에서 크롤링을 할 때도, 가상환경으로 workon한 상태에서 해줘야한다.***
실행은 scrapy crawl + spider클래스에 명시한 name으로 크롤링한다.
2사이트 대해 html코드를 모두 가져오는 LI와 LU를 가져왔다.
부분적으로 코드를 추출하고 싶을 때는, 터미널-scrapy shell 과 크롬개발자도구의 Copy to xpath를 이용한다
이 때, response.xpath(' ~~~~ /text()').extract() 가 텍스트 전체를 추출했따면
response.xpath(' ~~~~ /text()').re('(\w+):') 라는 정규표현식 코드를 이용해서, 특수문자제외 단어별로 끊어서 리스트로 가져온다.
우분투의 메모장은 dash에서 gedit을 검색하자
***우리가 가지고 오고싶은 데이터는 ul 태그 안에 li태그로 리스트형태이다. xpath를 직접 확인하지말고
전체 코드 response.xpath('') 안에다가, //ul/li 를 통해 보이는 리스트를 모두 가져온 뒤, for문으로 꺼내보고
각 리스트는 꺼낸것.xpath('')에다가 각 서브xpath를 걸어서 추출하고 print하였다.
세부적인 검색이 없으니, 각종.. 예외사항 리스트들도 같이 출력된다.
items.py에서 아이템클래스의 객체를 생성하고, parse에서 그 객체들에 하나씩 담을 때는,
생성자인 yield item을 통해, 각 for문마다 채워진 item을 반환하면서 리스트로 쌓아준다.
*만약 터미널이 debug모드이면, 출력된 링크들도 확인이 된다.
*** 크롤링한 것을 csv가 아니라 json으로도 저장할 수 있다. ( csv와 -o까진 같고, 파일명만 json으로)
scrapy scrawl acu -o items.json
***pipelines에서 각 쌓아진 item별로 작업을 할 수 있고, db에 저장하는 작업도 할 수 있다.
***데이터를 받을 때,인코딩을 지정할 수 있다.
\u~~는 유니코드를 의미한다.
*******이제 크롤링을 주기적으로 하기 위한 스케쥴링은, 리눅스에서 제공하는 Crontab을 이용한다.
Crontab
리눅스의 기본 서비스로 정해진 시간에 정해진 스크립트를 시작할 수 있다.
/etc/crontab 에 가서 편집을 통해 가능하다.
설정가능항목으로
분 : 0~59 / 시 : 0~23 / 일(1~13) / 월(1~12) / 요일(0~6, 0이 일요일) / 사용자 / 명렁어 형식이다
실행확인은 grep CRON /var/log/syslog 를 활용한다.
30분마다 작업하고 싶다면 30 * * * * * 을 해주면 된다.
정해진 요일의 정해진시간에 하고 싶다면, 분/시간 * * * * 요일을 지정해주면 된다.
실습
1. 크론탭파일에 진입하려면 관리자권한(sudo)으로 편집기(vi)를 통해 들어가야한다.
명령어 위치는 작업하던 가상환경에서 해두 상관없는 것 같다.
수정은 insert를 눌러 인서트모드에서 작업하고, 저장은 다시 모드를 바꾸어 :wq!로 저장하고 나온다.
그런데, 어떤 작업을 넣어주기 위해서는, 작업을 실행할 스크립트 파일을 만들어야한다.
2. 작업수행 스크립트(sh) 만들기
6. 필터로 골라보기( 기본 / 숫자/색 기준), 바꿔주기(bad데이터), 그룹 데이터 만들기, 자주하는 작업
sql와 엑셀 필터
SQL의 Select / From / Where 절 중, Where절에 해당하는 것이, 엑셀의 필터이다.
필터를 이용해서, 자료를 보는 것만이 아니라, 데이터를 골라낼 수 있어야한다.
자동필터 - 데이터 골라보기
자동필터는 홈탭 > 편집캡션 > 정렬 및 필터 > 필터 / 또는 / 데이터탭 > 필터에 위치해있고, 단축키는 [Ctrl + shift + L ]이다.
필터를 달 데이터에 속하는 하나의 셀을 클릭한 상태에서, 적용시켜야한다.
자동필터를 적용하면, 첫 행에, 역삼각형의 필터가 적용되고, 가려볼 데이터를 선택한 뒤 확인을 누르면 해당 데이터만 볼 수 있다.
실습 - 필터로 데이터 골라보기
필터를 달고, 직위 열의 역삼각형을 눌러보자. 해당열의 중복없는 데이터를 관찰할 수 있다.
모두선택을 체크하여 풀고 , 과장만 선택해서 데이터를 확인해보자.
필터링 하고 있는 열에는, 역삼각형이 --> 와이파이같은 모양의 아이콘으로 바껴있다.
이번에는 교통비의 필터를 보자. 빈셀은 (필드 값 없음)으로 뜬다.
이번에는 숫자로만 구성된 기본급 필터를 열고, [숫자필터]를 알아보자. 가장 많이 쓰는 것은 [해당범위] 이다.
숫자필터 > 해당범위를 이용해서, 100만원보다 크고, 200만원보다 작은 기본급을 가진 사람만 필터링 해보자.
숫자필터 > 상위항목 을 이용해서, 상위의 항목(순위) 또는 %(퍼센트)를 알아보자.
다음으로, 상위 20%를 보자. 총 데이터가 35개이므로, 상위 20%는 (35*0.2=7) 7개만 보여질 것이다.
이번에는 기본급에서 특정 셀들만 셀서식-채우기(셀 색)을 입힌 뒤, 필터> 색기준 필터를 이용해보자.
색기준 필터에 들어가면, 셀서식으로 입힌 색과 채우기없음으로 구분이 된다.
보고싶은 데이터만 셀 서식을 입혀두고, 원하는 데이터만 가져올 수 있다.
자동필터2 - Bad 데이터 바꿔주기
빈 셀과 비유효값을 정리해보자.
비유효한값의 예로는,, 숫자로만 구성된 열에, 한글로 표시된 것을 가려내는 것이다.
필터에서, 숫자 데이터 중 한글을 직접 보고 bad데이터를 필터링해서 골라낸 다음, 그것을 전체선택하여 ctrl+enter로 일괄 입력해주면 된다.
빈셀의 경우, (필드값없음)을 필터링해서 똑같은 방식으로 해주면 된다.
실습
필터로, 기본급 열에, bad데이터인 백만원만 골라내보자.
골라낸 bad데이터를 전체 선택해서, 숫자로 바꾸어 ctrl+enter로 일괄 입력하자
교통비라인에서, 빈셀을 필터링하여, 0으로 바꾸어 입력해보자.
자동필터3 - 계급 데이터 만들기
실습을 참고하자.
실습
1. 설계 : 그룹화하고싶은 특정열(기본급 열)을 보고, 나눌 구간을 생각하자.
기본급을 [100미만] /[100~ 200]/ [200~300] / [300 이상]으로 나누어보자.
2. 그룹 데이터를 만들 새로운 열을 추가하자. 기본급을 기준으로 나눌 것이기 때문에, 기본급열 옆에 추가하자.( 기본급 그룹 열)
- 열 추가 단축키 : [ctrl + space ]로 열 선택 -> [ ctrl + (+)] 로 열 추가
3. 그룹화대상 열을 숫자필터 > [보다 작음/해당범위/보다 큼]로 필터링하여 각 그룹의 데이터들을 뽑아낸뒤, 추가한 열에 각 그룹명을 적어주자.
***해당범위만으로 보다작음을 사용하고 싶다면, 2개조건 중 1개는 빈칸으로 선택해라.
먼저, 100만원 미만 그룹만 뽑아낸 뒤, 추가열을 전체선택하여 그룹명을 ctrl+enter로 일괄 적어주자.
100~200/ 200이상 ~300미만/ 300이상 구간도 똑같이 해준다.
4. 그룹화한 각 구간은 피벗테이블 등 데이터를 구간별로 집계할 때 이용한다.
- 차후에 다루자.
자동필터 적용후 많이 하는 작업 정리
2. 시트행 삭제는 셀만 선택하더라도, 해당 행을 삭제해주는 기능이다.
3. 필터링된, 값만 복사해서 붙여놓고 싶을 때는, [이동옵션]을 이용해서, [화면에 보이는 셀만]을 선택한 다음 복사해줘야한다.
실습
필터링 된 자료 중에, 시트 행 삭제( 따로 행선택 안하고, 한 셀만 선택하더라도, 해당 행 삭제)를 해보자.
시트행삭제는 [ alt+7]에 추가했었다. 홈탭> 셀> 삭제 > [시트행 삭제]에 위치해있다.
100만원 이하인사람만 필터링하자(그룹데이터는 100만원 미만 이라서, 새로 필터링 따로 해줘야한다)
삭제하고 싶은 셀들을 선택(첫행 선택하면 안됨)한 다음, 시트행 삭제 [alt+7]을 통해, 행 선택없이 바로 해당 행들을 삭제해보자.|
이제 필터링한 데이터들 중, 해당 행들만 복사해서 다른시트에 [값만 붙여넣기]를 해보자.
직위 중 대리들만 필터링 한 뒤, 모든 데이터들을 선택한 다음, 다른 시트에 옮겨보자.
새로운 시트에서, [ctrl+ alt+ v]를 이용해 값만 붙혀넣자.
이 때, 새로운 시트에서는, 눈치껏 첫행은 남겨두고 붙히자...
안전장치를 해보자.
사실 복사한 데이터들의 [행]을 보게 되면, 필터링 되어 띄엄띄엄 되어있다.
이 때, 중간중간 데이터들이 숨어있게 되어, 복붙시, 다른 값들도 가져오는 경우가 있다.
필터링후 복사할 데이터 선택 -> 필터링 된 값을 Ctrl+c로 복사하기 전에, 항상 [이동옵션]-[화면에 보이는 셀만]을 선택 한뒤, -> Ctrl + c로 복사하자.
이동옵션은 홈탭> 편집>찾기및 선택> 이동옵션에 있다. 단축키 [alt+07]에도 지정되어 있다.
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
8. 데이터 정리에 요긴한 필수 기법 Best7 (2) (0) | 2018.03.21 |
---|---|
7. 데이터 정리에 요긴한 필수 기법 Best7 (1) (0) | 2018.03.21 |
참고 : 데이터집계함수 및 if/ifs 정리 (0) | 2018.03.16 |
5. 데이터 집계함수 5개 / 조건에 따른 집계 함수3개 / 여러조건에 따른 집계함수 3개 (0) | 2018.03.16 |
4. 수식, 함수식으로 엑셀 자동화하기 (0) | 2018.03.16 |
참고 : 데이터집계함수 및 if/ifs 정리
[ 합/평균/최대최소/카운트/순위 ]
COUNT A=빈칸제외
COUNT = 숫자만
RANK = 조회값, (조회값의 열인) 순위범위 // 내림차순
[ 전체에서 ~ 중 / - 의 합/평균/수 ] : 조건이 하나이니, 앞에서 조건을 단다.
SUMIF = 조건범위, 조건 // 조건범위길이의 SUM할 범위
AVERAGEIF = 조건범위,조건// 조건범위길이의 AVERAGE할 범위
COUNTIF = 조건범위,조건//
[ 전체에서 ~중, ~인 / ~의 합/평균/수 ] : 조건들이 여러개이니 뒤로 밀었다.
SUMIFS = SUM할 범위,// 같은길이의 조건범위1, 조건1 // 조건범위2,조건2...
AVERAGEIFS = 평균구할할 범위,// 같은길이의 조건범위1, 조건1 // 조건범위2,조건2...
COUNTIFS = 조건범위1, 조건1 // 조건범위2,조건2...
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
7. 데이터 정리에 요긴한 필수 기법 Best7 (1) (0) | 2018.03.21 |
---|---|
6. 필터로 골라보기( 기본 / 숫자/색 기준), 바꿔주기(bad데이터), 그룹 데이터 만들기, 자주하는 작업 (0) | 2018.03.17 |
5. 데이터 집계함수 5개 / 조건에 따른 집계 함수3개 / 여러조건에 따른 집계함수 3개 (0) | 2018.03.16 |
4. 수식, 함수식으로 엑셀 자동화하기 (0) | 2018.03.16 |
3. 엑셀 단축키 및 빠른실행도구 모음 사용하기 (0) | 2018.03.15 |
5. 데이터 집계함수 5개 / 조건에 따른 집계 함수3개 / 여러조건에 따른 집계함수 3개
데이터 집계함수 Best 5
실습
기본급에 대한 합계, 평균은 =SUM, AVERAGE를 완성해주면 된다.
교통비 지급인(명수)을 구할 때는, 교통비를 범위로 하여, COUNTA를 사용해보자.
=COUNTA(G2:G36)
COUNTA함수는 교통비가 비어있는 사람은 세지 않는다.(빈셀만 제외)
COUNT함수는 숫자만 세준다. 바로 밑에 칸에 식대를 범위로해서 명수를 세어보자.
없음으로 표시된 문자열은 세어지지 않는다. 35행 중에 오로지 숫자인 것만 센다.
=COUNT(F2:F36)
이 때, 숫자가 아닌 [없음]은 COUNT에서 세지 않는다.
같은 식대범위에서, COUNTA를 사용해보자. 빈셀만 제외하고 문자열 데이터[없음]도 다 센다.
=COUNTA(F2:F36)
순위에 대해 RANK함수를 사용해보자.
먼저 익숙치 않은 함수이므로, 순위 첫번째 셀만 선택한 뒤, =RANK()를 입력하고, [SHIFT+F3]으로 함수인자를 살펴보자.
첫번째 인자에는 순위를 조회할 값이다. 기본급에 대한 순위를 구할 것이므로, 해당하는 기본급(E2)를 순위조회할 인자로 넣어준다.
두번째 인자에는 첫번째 인자를 포함한 열로서, 순위조회할 범위이다. 기본급 전체를 인자로 넣어준다.
세번째 인자는 Order로서, 0 : 내림차순, 그외 : 오름차순
빈칸이나, 0을 넣으면 내림차순으로 정렬하게 된다.
첫번째 행의 기본급의 순위는 24등이다.
이제 자동채우기 핸들로 다 채워보자.|
조건에 따른 데이터 집계함수 3개 이용하기(SUMIF, AVERAGEIF, COUNTIF)
SUMIF는 조건범위(C16부터 C19까지), 조건( 2000보다 크면), SUM할 데이터범위(F16부터 F19까지 더할 것이다) 순으로 온다.
즉, 단가 전체에서 , 2000이상인 것들에 대해, 금액의 합을 구한다.
AVERAGEIF는 SUMIF와 동일한 인자를 가지며, 마지막 통계함수만 다르다. 조건범위, 조건, AVERAGE할 데이터범위
즉, ~범위에서, ~조건을 만족시키는 것들에 대해, ~의 평균을 구한다.
COUNTIF는 2개의 인자로, 조건범위와 조건만 오면 수를 자동으로 세준다.
즉, ~범위에서, ~조건을 만족시키는 갯수를 구한다.
*** 이때, 조건범위와 SUM할 범위의 열의 범위(16부터 19)가 같아야한다.
실습
조건문을 활용하여, 전체팀 중 기술팀을 골라내어 기본급의 합과 평균을 구해보자.
즉, 전체팀을 조건범위, 기술팀을 조건 // sum할범위를 기본급 전체를 선택한다.
조건은 팀이름 전체를 선택하고, 조건은 "문자열"로 "기술팀"을 입력해준다.(공백허용x)
조건범위가 팀 전체이므로, 그 행수와 동일한 범위로서, 기본급도 전체를 선택해야한다.
조건은 ""쌍따옴표 안에, 넣어줘야한다. 수식일 경우도, " >200 " 형식으로 넣는다.
금액을 잘 알아볼 수 있게, 셀 서식[ Ctrl+1]을 눌러서, [회계]를 선택해준다.
평균값도 마찬가지로 AVERAGEIF를 이용해서 구하면 된다.
기본급이 200만원 이상인 직원수를 구해보자.
이 때, 수식조건도 " "쌍따옴표 안에 들어가야한다.
=COUNTIF(E2:E36,">2000000")
여러 조건에 따른 데이터 집계
여러조건에 대해 데이터집계함수를 사용하려면, ~ IFS 함수를 이용하면 된다.
~IF함수들과 인자의 형식이 다르다.
SUMIF는 조건범위,조건// 조건범위길이의 SUM할 데이터범위 였으나,
SUMIFS는 SUM할 범위,// 같은길이의 조건범위1, 조건1 // 조건범위2,조건2 ... 식으로 나간다.
실습2
전체팀 중 영업팀에서, 기본급 200만원이상인, 기본급의 합을 구하고 싶다.
SUMIFS ( SUM할범위, 조건범위1, "조건", 조건범위2, "조건2")로 구하면 된다.
=SUMIFS(E2:E36, B2:B36, "영업팀", E2:E36, ">2000000")
전체팀 중 영업팀에서, 대리들만 뽑아서, 기본급의 평균을 구해보자.
조건 2개가 있는, 평균이므로, =AVERAGEIFS 를 이용하면 된다.
=AVERAGEIFS(E2:E36, B2:B36, "영업팀", D2:D36, "대리")
기술팀에서 기본급 120만원이상인 대리의 수를 구해보자.
COUNTIFS는 조건만 가지므로, 3개의 조건을 입력해주면 된다.
전체팀범위 ,"기술팀" / 기본급범위, ">=1200000", / 직위범위 , "대리"
=COUNTIFS(B2:B36, "기술팀", E2:E36, ">= 1200000", D2:D36,"대리")
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
6. 필터로 골라보기( 기본 / 숫자/색 기준), 바꿔주기(bad데이터), 그룹 데이터 만들기, 자주하는 작업 (0) | 2018.03.17 |
---|---|
참고 : 데이터집계함수 및 if/ifs 정리 (0) | 2018.03.16 |
4. 수식, 함수식으로 엑셀 자동화하기 (0) | 2018.03.16 |
3. 엑셀 단축키 및 빠른실행도구 모음 사용하기 (0) | 2018.03.15 |
2. 셀/ 시트/ 채우기핸들 다루기 (0) | 2018.03.14 |
7. 선택한버전은 취소한 뒤 남겨두고, 직전버전으로 돌아가는 Revert(Reverse)
git의 Revert = 소스트리의 Reverse commit 을 이용하여, 취소할 버전을 남겨두고 직전버전으로 돌아가자.
Reset은 선택버전 이후의 버전들은 모두 삭제하고, 선택한 버전으로 돌아간다. 파일유지만 Hard(삭제)/Mixed(유지)로 결정해준다.
Revert는 취소할 선택버전을 남겨둔 체, 그 직전버전을 [ Revert + 취소버전]이라는 이름으로 새로운 버전을 만들어준다.
(즉, Revert 버전 = 그 버전의 이전 버전으로 돌아간다.)
타임라인에서 취소할 버전을 선택한 뒤, 우클릭 > [Reverse Commit] 을 통해, 직전 버전을 새로운 이름[Revert 취소버전]으로 만들어준다.
이름은 [ Revert 취소한 버전 ]이지만, 취소버전의 직전버전[body태그 추가]으로 돌아간 상태라,
수정해준 index.html이 다시 돌아가고, 추가해준 README.md가 삭제되었다.
만약, 더 이전버전으로 돌아가고 싶다면, 최신버전부터 -> 취소할 버전까지, 순차적으로 계속 revert를 해줘야한다.
예를 들어서, 아래의 상태에서, html태그 추가 버전까지 다 취소하고 싶다면,
[reset-mixed] revert -> [body태그 추가] revert -> [ html태그 추가] revert 후, ===> index.html버전에 도착하게 된다.
해석을 하자면 ) Revert "특정버전" ---> 특정버전하기 전으로 돌아갔구나!
[html태그를 추가]하기 전으로 돌아갔구나!
만약 순차적으로 revert안한다면, 충돌이 일어날 수 있다.
'개발공통 > Git과 SourceTree' 카테고리의 다른 글
8. 브랜치 소개 / 만들어보기 (0) | 2018.03.24 |
---|---|
참고 : 되돌리기 4개 (Discard/ Reset - Hard/Mixed / Revert(Reverse) 정리 (0) | 2018.03.20 |
6. 이미 commit했었던, 지난버전으로 되돌리기(Reset - Hard/Mixed) (0) | 2018.03.16 |
5. commit전, 현재 수정사항 취소 후 가장 최신버전으로 되돌리기(discard) (0) | 2018.03.16 |
4. git 용어 익히기(WorkingCopy, Add, Index=staging area, Repository) (0) | 2018.03.15 |
6. 이미 commit했었던, 지난버전으로 되돌리기(Reset - Hard/Mixed)
Repository(타임라인)에서 Reset to Current - Hard을 이용해, 지난 버전+지난파일로 되돌아가기
Reset to current branch에서 current란,, 선택한 지난버전을 의미한다.
타임라인(repository)에서 되돌아가고 싶은 버전 [body태그 추가]을 선택하고,
우클릭 > [ Reset to current branch ]를 선택 한 뒤, [ Hard - ~ ]를 선택하면
[body태그 추가] 버전 이후의 모든 버전들이 삭제되고, 아직 commit하지 않은 내용, stage에 올려놓은 내용도(파일들도) 모두 사라진다.
실제 파일 [index.html]도 body태그만 추가한 상태로 되돌아갔고,
선택버전 이후의 모든 내용 + 파일이 다 사라지니, 조심해서 사용해야한다.
다시 최신버전으로 수기로 대충 만들어보자. html>body>header>h1태그 + README.md
Reset to current - Mixed로 지난버전으로 되돌리면서, 현재파일은 유지하기
어떤 웹서버를 관리하다가 인증정보를 모르고 파일에 넣어 오픈소스로 풀려버렸다.
이 때, 지난버전으로 되돌리면서, 현재 수정중인 파일들은 유지(working area 유지)하고 싶다면 역시 reset를 이용하면 된다.
우클릭 > [ Reset to current branch ]를 선택 한 뒤, [ Mixed - ~ ]를 선택하자.
마찬가지로, [body태그추가 버전] 이후의 버전들은 삭제되지만, 현재 작업중인 파일들은 유지가 되어, Uncommitted changes가 남아있다
특히, 작업중인 파일들이 없을 때로 돌아가면, 버전관리가 안되는 것 같이 [보라색]으로 유지된다.
Mixed/soft/hard의 차이점에 관해서는 다음에 이해하자.
'개발공통 > Git과 SourceTree' 카테고리의 다른 글
참고 : 되돌리기 4개 (Discard/ Reset - Hard/Mixed / Revert(Reverse) 정리 (0) | 2018.03.20 |
---|---|
7. 선택한버전은 취소한 뒤 남겨두고, 직전버전으로 돌아가는 Revert(Reverse) (0) | 2018.03.16 |
5. commit전, 현재 수정사항 취소 후 가장 최신버전으로 되돌리기(discard) (0) | 2018.03.16 |
4. git 용어 익히기(WorkingCopy, Add, Index=staging area, Repository) (0) | 2018.03.15 |
3. git repository(저장소) 생성과 commit(버전) 만들기 (0) | 2018.03.13 |
5. commit전, 현재 수정사항 취소 후 가장 최신버전으로 되돌리기(discard)
Discard 버튼을 이용해서, 수정사항(추가 혹은 삭제한 코드) 취소하기
어떤 파일을 수정했는데, 아직 commit하진 않았을 때, discard를 이용해서 가장 최근에 commit한 버전으로 파일을 되돌릴 수 있다.
기존의 index.html 파일에 body태그 안에 있던, header태그를 제거하는 수정을 해주자.
소스트리에서 수정사항을 감지하 곳에서, 제거한 부분은 (-) 빨간색으로 표시된다.
갑자기, working area에 있는 index.html의 삭제한 저 빨간줄을 다시 복구하고싶다
상단의 Discard버튼을 눌러보자.
index.html파일을 선택후, discard changes를 눌러서 수정사항을 취소한다.
그러면 아래와 같이, unstage에서 수정을 감지한 index.html이 사라져있고,
실제 파일에서 가장 최신버전의 index.html로 돌아와있다.(지웠던 header태그가 살아나있다)
staging files(index 혹은 staging area)에서도 discard가 먹힌다. 커밋전에 수정사항취소후 되돌리기는 다 가능.
commit하기 전에, 지금 작업한 내역을 review하는 버릇을 가지자.
working area/staging area(index)의 초록줄/빨간줄은 최종적으로 되돌릴 수 있는 순간이다.
'개발공통 > Git과 SourceTree' 카테고리의 다른 글
7. 선택한버전은 취소한 뒤 남겨두고, 직전버전으로 돌아가는 Revert(Reverse) (0) | 2018.03.16 |
---|---|
6. 이미 commit했었던, 지난버전으로 되돌리기(Reset - Hard/Mixed) (0) | 2018.03.16 |
4. git 용어 익히기(WorkingCopy, Add, Index=staging area, Repository) (0) | 2018.03.15 |
3. git repository(저장소) 생성과 commit(버전) 만들기 (0) | 2018.03.13 |
2. Git과 SourceTree(소스트리) 설치(Windows10) (1) | 2018.03.13 |
4. 수식, 함수식으로 엑셀 자동화하기
수식과 함수식의 기본형식
수식과 함수식을 복합적으로 적용할 수 있어야한다.
아래 표에서 급여총액을 수식으로 구해보자.
직접 수식을 작성해보자.
자동채우기 핸들을 이용해보자.
급여총액을 함수식으로 구해보자.
SUM함수는 범위를 드래그를 통해서 범위를 지정할 수 있다. 콜론(:)이 범위를 나타낸다.
함수를 이용할 때는 단축키 [SHIFT +F3]을 이용해서 함수식 입력창을 띄워, 함수 인자(인수)들을 입력시킬 수 있다.
함수 이름을 아는데, 그에 대한 내용을 모를 때는 이러한 방식을 사용하면 된다.( CTRL+F3 은 이름관리자 )
급여총액의 10%를 계산해서 소득세를 구해보자.
=SUM(E2:H2)*0.1 처럼, 급여총액까지는 함수식을, 10%는 수식을 복합적으로 이용했다.
옆에 빈칸에 기술팀의 기본급+식대의 합을 구해보자.
SUM ( 기본급의 합 + 식대의 합 ) 형태로, SUM함수의 인자에 특정범위나 특정값이 아닌, 다시 함수식을 넣었다.
=SUM( SUM(E2:E13),SUM(F2:F13) )
참조(셀의 위치)를 이해하기
참조는 셀의 위치를 의미하고, 수식 안에서는 변수로 작동한다.
참조는 상대참조와 절대참조로 나뉘어진다.
상대 참조는 아무것도 안붙어있지만, 절대 참조는 앞에 $표시(고정의 의미)가 붙어있다.
예를 들어 B1은 상대참조, $B$1은 절대참조이며 B앞의 $는 열을 고정 / 1앞의 $는 행을 고정시킨다는 의미이다.
열 혹은 행에만 달러가 붙을 수 도 있다. ($B1, B$1)
범위에 있어서도 절대 참조가 있다. A1부터 B3까지는 A1:B3로 나타낼 수 있는데, 고정된 위치라면 $A$1 : $B$3으로 나타낼 수 있다.
절대참조를 상대참조와 구분하는 이유는 [복붙] 혹은 [자동채우기핸들]을 이용시 , 참조의 위치를 변경시킬 것이냐 아니냐를 결정하는데 있다.
*특정인자를 [F4]를 눌러서, 참조형식을 바꿀 수 있다.
실습 : 가격에 할인율을 적용시켜 판매가격을 결정해보자
판매가격 = 가격 - (가격*할인율)을 수식으로 적용시켜보자.
아래 2개를 자동채우기로 채웠더니, 문제가 생겼다.
프린터는 할인율이 적용되지 않았고, 마우스는 에러가 났다.
프린터의 경우를 보자. 할인율이 C2가 되어야하는데, C3로 옮겨져서 에러가 된것이다.
상대적으로 같이 변해야할 가격의 위치와 달리, 할인율은 위치가 변하면 안되는 것이다.
변하지 않아야할 위치인 할인율(C2)를 달러$표시[F4]를 붙혀서 고정시킨 뒤, 자동채우기를 하자.
아래 예제에서, 총점을 계산할 때, 가산점10점을 주기로 했다. 가산점을 붙힌 총점을 계산해보자.
수식을 작성해보자.
이 때, 고정된 가산점은 고정되어야하므로, 절대참조[F4]로 만들고 난 뒤, 자동채우기로 채우자.
이 때, 참조의 형식을 바꿀필요가 있는 인자를 선택한 뒤, [F4]키를 눌러서 바꿔보자.
'빅데이터 관련 프로그래밍 > excel' 카테고리의 다른 글
참고 : 데이터집계함수 및 if/ifs 정리 (0) | 2018.03.16 |
---|---|
5. 데이터 집계함수 5개 / 조건에 따른 집계 함수3개 / 여러조건에 따른 집계함수 3개 (0) | 2018.03.16 |
3. 엑셀 단축키 및 빠른실행도구 모음 사용하기 (0) | 2018.03.15 |
2. 셀/ 시트/ 채우기핸들 다루기 (0) | 2018.03.14 |
1. 엑셀의 형식과 기본 데이터 (0) | 2018.03.14 |
3. 웹 크롤링 개발환경 만들기(VirtualBox /Ubuntu16.04/가상환경/python/BeautifulSoup4 설치)
VirtualBox 와 Ubuntu16.04 설치
- VirtualBox를 다운로드 해서 설치하고, 아래주소에서 우분투 16버전의 iso를 다운받는다.
- VirtualBox의 새로만들기 > 종류[Linux] , 버전 [ Ubuntu64-bit ]를 지정해준다.
- 각종 옵션은 기본으로 준다.
우분투에서 가상환경 -> 파이썬 -> BeautifulSoup4 외 각종 라이브러리들 설치
- 우분투 설치가 완료되면 terminal을 띄운다. [ctrl + alt+ t]
- 우분투가 설치되면 필요한 패키지들을 설치하기전에, 우분투의 [패키지매니져를 업데이트] 해야한다.
sudo는 관리자권한 / apt-get는 패키지 매니져를 의미한다.
sudo apt-get update - [build-essential] 이라는 패키지를 설치한다. 컴파일러 gcc++ 등 라이브러리들을 설치하게 된다.
sudo apt-get install build-essential - 파이썬은 기본적으로 설치가 되어있다. 버전을 확인하는 방법은
python -V - 파이썬 콘솔로 들어가는 방법은 python을 치면 된다. 나가는 방법은 Ctrl+d
- [ pip파이썬 패키지매니져 ]를 설치하자. 파이썬 라이브러리(패키지)를 쉽게 관리해준다.
sudo apt-get install python-pip - [파이썬 가상환경 - 버츄얼env ]를 사용하자. 사용하던 가상환경을 서버환경으로 캡슐화하여 그대로 옮길 수 있다.
버추얼env를 편하게 사용하게 해주는 패키지인 [ virtualenvwrapper ]도 같이 설치하자. wrapper명령어를 사용할 수 있게 된다.
sudo pip install virtualenv virtualenvwrapper - 버추얼env세팅을 위해, vi루트를 이용해서 프로파일 설정 파일인 [bashrc]를 호출하자.
vi .bashrc
제일 밑으로가서 [ vitualenv에서 사용하는 홈디렉토리를 설정 ]해줘야한다. 변수명은 WORKON_HOME / 디렉토리명은 .virtualenvs 으로 지정한다.
진입시 e를 눌러서 에디터한다고 명시하고, 이 때, i를 눌러서 [insert모드]가 되어야한다.
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh - esc를 누른뒤, :wq! 명령어를 통해서 저장하고 나온다.
- 터미널로 나와서 설정한 프로파일 설정을 적용시키자.
source .bashrc - 이제 가상환경의 이름을 적용해서 만들어보자. mk + virtualenv 가상환경이름
mkvirtualenv is2js - 가상환경을 빠져나오는 명령어
deactivate - 가상환경을 들어가는 명령어
workon is2js - 가상환경 (is2js)에서, 이제 본격적으로 beautifulsoup4을 설치하기에 앞서,
필요한 패지키 중 하나인 html코드를 분석해주는 [ lxml 이라는 파서] 설치해야한다.
sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev - (sudo를 가지고 설치하는 것은 가상환경과 상관없이 리눅스 우분투 전체에 설치하는 것)
- 파이썬용 lxml을 설치시켜주자. (위에 설치할 때, 파이썬에서도 자동 설치해주므로 설치된 것으로 뜬다)
sudo apt-get install python-lxml - 파이썬pip패키지매니져를 이용해서[ 파이썬 환경에서 lxml 과 beautifulsoup4 ]을 설치하자.
pip install lxml
pip install beautifulsoup4 - scrapy 설치를 위한 추가 라이브러리를 미리 설치한다.
sudo apt-get install libffi-dev libssl-dev - pip매니져를 통해서 파이썬에 scrapy를 설치한다.
pip install Scrapy
설치한 가상환경 및 폴더들 확인하기
- 가상환경 홈디렉토리 가는 방법 : cd .virtualenvs/
- ls 명령어로 가상환경 확인
- cd 가상환경명 으로 진입
- ls로 bin/include/lib/local 등 확인할 수 있다. lib폴더에 각종 라이브러리들이 설치된다.
- cd lib로 라이브러리 폴더에 진입
- ls를 통해서 설치한 파이썬 확인후 진입
cd python2.7/ - ls를 통해서 각종 파일 확인
- cd명령어를 통해서 한번에 빠져나오기