설찬범의 파라다이스
글쓰기와 닥터후, 엑셀, 통계학, 무료프로그램 배우기를 좋아하는 청년백수의 블로그
엑셀 할머니 (25)
엑셀 할머니 23 - 엑셀 가나다순 정렬
반응형









자료들이 여러 줄 있을 때,

가나다순으로 어떻게 정렬하죠?






정렬 자체는 아주 쉽단다.







원하는 범위를 드래그하고

'데이터' 리본에 있는 '정렬 및 필터' 부분을 찾으렴.






ㄱ과 ㅎ과 화살표가 보이지?

보이는 대로 위는 가나다순(오름차순)이고

아래는 가나다 역순(내림차순)이란다.






그런데 이렇게 정렬을 누르면

한쪽 줄만 바뀌고, 옆 데이터는 그대로지 않나요?








그래서 요즘은 한 줄만 드래그하고 버튼을 누르면

선택 영역을 확장할지 말지를 고를 수 있게 해 뒀단다.








만약 선택 영역을 확장하면 옆 줄에 있는 데이터도 같이 움직이지.





음...




왜 그러니?

석연치 않은 구석이 있니?







만약에 정렬을 두 번 하고 싶으면 어떡하죠?














예를 들어서 이 데이터를 보세요.






아까처럼 첫 줄을 가나다순으로 정렬해도

두 번째 줄이 알파벳순으로 정렬되지는 않잖아요.







그럴 때도 정렬은 가능하단다.






아까처럼 데이터를 선택하고 똑같이

'데이터' 리본에 가보렴.








가나다순 정렬 버튼 옆에 '정렬'이 있지?









이곳 정렬 메뉴에서는 여러 기준들을 만들고,

그 적용 순서를 조절할 수 있단다.





네가 하고 싶은 건, 먼저 첫 줄을 가나다순으로 정렬하고,

그 다음 둘째 줄 알파벳을 알파벳 순으로 정렬하고 싶다는 거지?





맞아요.








그럼 일단 첫 기준부터 정하자꾸나.







정렬 기준에서 정렬할 열을 선택하고,

정렬 기준은 값으로 한 다음 정렬은 오름차순으로 하면 되겠지.









그 다음 '기준 추가'를 눌러서 기준을 하나 더 만들자꾸나.







다음 기준은 두 번째 열을 고르고,

역시 정렬 기준은 값, 정렬은 오름차순으로 하자.






만약 기준 적용 순서를 바꾸고 싶다면

기준을 누르고 위 화살표 버튼을 누르렴.

기준을 올리고 내려서 순서를 바꾼단다.









짜잔! 이제 같은 가나다순 안에서도 알파벳이 알파벳 순으로 정렬되었지.

반응형
  Comments,     Trackbacks
엑셀 할머니 외전 4- 엑셀 CONCATENATE 함수
반응형




안녕하세요. 오늘은 엑셀에서 텍스트를 이어붙이는 법을 배워 봅시다.






엥? 이미 &로 텍스트를 이어붙이는 법을 말하지 않았냐구요?








물론 &를 이용하면 쉽게 텍스트를 붙일 수 있습니다.







하지만 다른 방법, 특히 엑셀 함수로 텍스트를 붙일 수 있어요.




바로 CONCATENATE라는 함수입니다.







CONCATENATE에는 '잇다'라는 뜻이 있습니다.

말 그대로 내용을 이어버리는 함수죠.









바로 예를 들어 볼까요.

기업 년도별로 수익률이 있군요.







이제 결과로

"XX기업은 YY년에 ZZ수익률을 기록"이라는 글을 쓰고 싶다고 합니다.








기업 이름, 연도, 수익률을 베껴 써도 되지만, 여긴 엑셀입니다.

이렇게 해 보세요.





=CONCATENATE(셀 주소, "기업은 ", 셀 주소, "년에 ", 셀 주소 , "퍼센트 수익률을 기록")







보세요. 금방 텍스트가 나타났죠?






이처럼 CONCATENATE 함수는 쉼표로 구분한 셀이나 텍스트, 숫자를 하나로 이어준답니다.





참!

띄어쓰기를 하고 싶으시다면, 큰따옴표 사이에 칸을 비워 두세요.



" "

이렇게요.




그리고 텍스트를 쓰실 때 큰따옴표를 넣는 것을 잊지 마세요.

반응형
  Comments,     Trackbacks
엑셀 할머니 22 - 엑셀 함수 만들기
반응형





민호야 준비 됐니?






무슨 준비요?






지난 시간에 '차라리 함수가 따로 있었으면 좋겠다'고 

말했잖니.





그래서요?

설마 마이크로소프트에 직접 가신 건..





으이구.

민호야. 잘 들으렴.

엑셀에는 함수를 만들 수 있는 기능이 있단다.





정말요?

빨리 알려주세요.







일단 함수를 만들고 싶다면

개발 도구 리본에 들어가렴.



 * 개발 도구 리본이 없다면

파일 - 옵션 - 리본 사용자 지정에 들어가서 개발 도구를 체크합시다.








개발 도구 맨 왼쪽에 있는

Visual Basic을 누르렴.








뭔가 이상한 창이 나타났어요.




Visual Bacis for Applications

흔히 VBA라고 부르는 기능이다.

VBA를 잘 쓰면 엑셀 고수가 될 수 있지.

여기서 사용자 정의 함수를 만들어보자꾸나




프로젝트니 속성이니...

머리가 아파요.









지금은 일단

삽입 - 모듈을 눌러라.







메모장 비슷한 창이 나타났어요.





여기에 글을 쓰면 함수를 만들 수 있다.

엑셀에 내리는 일종의 명령인 셈이지.

프로그래밍을 배워 본 적 있니?





아뇨. 한 번도 없는데요...






좋아. 프로그래밍을 알면 VBA도 쉽게 하지만

몰라도 할 수는 있단다.

그럼 차근차근 배워 보자.








1단계 : 함수 이름





일단 처음이니까, today 함수처럼

아무 인수도 필요 없는 함수를 만들어보자.




예를 들어서 무조건

숫자 5를 반환하는 함수를 만들어보자.

함수 이름은 뭘로 하고 싶니?





숫자 5를 반환하니까

그냥 five로 하죠?







좋다. 그럼 이렇게 쓰렴.





Function five()

five = 5

End function





무슨 뜻이죠?






일단 Function과 End function은

'이제부터 함수를 입력하겠습니다 ~ 이제 함수 입력이 끝났습니다.'

라는 뜻이다.




five()는 '이 함수 이름은 five입니다.

괄호 안은 필요 없어서 비워놨습니다.'란 뜻이고.






five = 5는 '이 함수 결과는 5입니다'라는 뜻이다.






만약 함수 이름이 onlyfive였으면, onlyfive=5라고 써야 하나요?





그렇지.

자, 이제 파일 - 저장을 누르렴.






저장할 때는 파일 형식을 '엑셀 매크로 사용 통합 문서'로 정해야 한단다.

그렇지 않으면 파일을 켰다 끄면 새로 만든 함수가 날아간단다.


* 이미 엑셀 파일이 매크로 사용 통합 문서가 아니라면

다른 이름으로 저장하면서 파일 형식을 바꿉시다. 









VBA를 끄고 함수를 시험해 보려무나.








아무 칸에나 =five()라고 쓰니까..

정말 5가 나왔네요!



 * 반환결과는 텍스트도 가능합니다.

물론 큰따옴표("")를 붙여야겠죠.




2단계 : 함수와 인수.





그럼 이제 숫자를 계산하는 함수를 만들어보자.

민호는 어떤 함수를 만들고 싶니?





어...

두 수를 더한 다음 제곱하는 함수는 어떨까요?






좋아. 그럼 기본틀은 이렇겠지.



Function 제곱(숫자1,숫자2)


End Function





함수이름이 한글이어도 되나요?






그럼.





좋아요. 두 숫자를 더해서 제곱하는 거니까...





Function 제곱(숫자1,숫자2)

제곱 = (숫자1 + 숫자2) ^ 2

End Function...







좋아요. 이번 함수도 잘 작동하네요.





3단계 : 이미 존재하는 함수 불러오기





좋아요. 이번에는 원의 넓이를 구하는 함수를 만들어보죠.




Function 넓이(반지름)

넓이 = 반지름 ^ 2 * PI()

End Function

맞죠?







어라? 왜 안 되지?






여기는 함수를 만드는 곳.

이미 존재하는 함수를 막 부를 수는 없단다.





그럼 어떡하죠?






Application.WorksheetFunction.함수이름

으로 이미 존재하는 함수를 불러올 수 있단다.








4단계 : IF 구문





좋다. 이번에는

시험점수에 따라 텍스트를 출력하는 함수를 만들어보자.



50점 미만은 '더 노력하세요'

50점에서 99점은 '괜찮아요'

100점은 '잘했어요'

101점부터는 '다시 입력하세요'






...라고 말이다.





음, 조건에 따라 다른 결과를 내려면...







이때는 IF 구문을 이용하면 된다.


if 첫 조건 then

결과 1

elseif 두 번째 조건 then

결과 2

...

else 나머지 경우일 때 결과


end if





'이 조건일 때는 이것을.. 이 조건일 때는 저것을...

그도저도 아닐 때는 이걸....'이라는 뜻이란다.







알았어요. 이렇게 하면 되죠?











결과도 제대로 나왔네요.




* VBA 단축키는 Alt + F11입니다.

반응형
  Comments,     Trackbacks
엑셀 할머니 21 - 엑셀 만나이 계산하기
반응형





할머니, 생년월일을 알면

엑셀에서 나이계산을 할 수 있나요?







그럼. 그전에 계산식부터 생각해 보자.

수학으로 식만 구할 수 있다면

엑셀에서는 대부분 구현할 수 있으니.





2000년생이라고 가정해 볼까?




2000년에 태어나면 2000년에는 1살,

2001년에는 2살, 2002년에는 3살...








그럼 2018년에는 몇 살일까?







19살이겠죠.








그럼 식은 어떻게 될까?







현재 년도에서 태어난 년도를 뺀 다음

1을 더하면 나이가 되겠네요.







한국식 나이는 그렇게 계산하지.

물론 요즘 사람들은 싫어하는 것 같다만.







하긴, 1월 1일에 태어난 사람과 12월 31일에 태어난

사람이 년도가 같다고 나이가 같으면 조금 이상하겠구나.







아무튼 엑셀로 나이를 계산한다면 이렇게 되겠지.





=YEAR(TODAY()) - YEAR (생년월일) +1






TODAY는 뭐죠?















TODAY는 오늘 날짜를 반환하는 함수란다.

괄호 안에는 아무것도 넣을 필요 없단다.




*만약 TODAY 함수가 자동으로 업데이트되지 않는다면

파일 - 옵션 - 수식 - 계산 옵션에서 자동을 선택합시다.







그럼 만 나이도 계산 가능할까요?








만 나이 계산법은 아니?







만 나이는 말 그대로 만(滿), 1년을 꽉 채워야 한 살이 된다는 뜻이죠.








2000년 5월 5일에 태어난 사람은

2001년 5월 5일이 되어야 만으로 한 살인 거죠.









원래 나이에서 만 나이를 구하는 법도 아니?







생일이 안 지났으면 원래 나이-2,

생일이 지나면 원래 나이-1이죠.








그럼 엑셀로 만 나이를 구하기 귀찮겠네요.

IF 함수를 이용해서 생일이 지났는지 안 지났는지 검사한 다음에...





아니다 민호야.

놀랍게도 만 나이를 구하는 함수가

엑셀에 있단다.






정말요?








정확히 말해서 만 나이를 위해 만든

함수는 아니지만 말이다.





바로 DATEDIF 함수란다.







DATEDIF요?









DATEDIF는 두 날짜 사이 경과한 기간을 구하는 함수란다.







경과한 날짜, 경과한 달수, 경과한 년도수를 구할 수 있지.








그럼 경과한 년도수가...








그렇단다. DATEDIF함수로 생년월일과

현재 날짜 사이 경과한 년도수를 구하면, 그게 자동으로 만 나이가 되겠지.







DATEDIF 함수를 쓰는 법을 알려주세요!









물론이다.




=DATEDIF( 생년월일 , 오늘 날짜, "Y")






여기서 "Y"는 연도 수를 계산하라는 정보 형식이란다.




 * 다른 정보형식은 다음과 같습니다.


 "M"은 개월 수 계산

 "D"는 날짜 수 계산

 "MD"는 월과 연도를 무시한 날짜 차이

 (예 : 2001년 8월 1일과 2002년 9월 2일은 "MD"로 1일 차이)

 "YM"는 일과 연도를 무시한 개월 차이

 "YD"는 연도를 무시한 날짜 차이







그럼 할머니,

주민번호를 엑셀에 넣고 만 나이를 알 수 있을까요?












생년월일을 알면 한국식 나이도 만 나이도

위에서 설명한 방법으로 계산할 수 있지.








그러니까, 주민번호로 생년월일만 추출하면 되는 거군요.







그렇단다.

주민번호 앞 여섯 자리가

각각 생년월일의 년도, 월, 일이잖니.







내가 한번 단순한 생년월일 추출 수식을 만들어 봤다.








XX가 셀 주소일 때 : 

=IF( MID(XX, 10, 1)<"3","19", "20") &LEFT(XX, 2)&"-"&MID(XX, 3, 2)&"-"&MID(XX, 5, 2)






아, MID함수는 텍스트를 추출하니까,

두 글자씩 추출해서 생년월일을 만드는군요.









그런데 IF함수는 왜 있죠?







그 사람이 21세기 출생자일 수도 있잖니.

21세기에 태어나면 뒷자리가 3과 4로 시작한단다.



그래서 뒷자리가 3보다 작으면

20세기 출생자라서 년도에 "19"를 붙이고

3 이상이면

21세기 출생자니까 년도에 "20"을 붙이게 했단다.






단순하면서도 좋은 수식이네요.

마이크로소프트가 차라리 나이계산 함수를 만들어 줬으면 좋겠는데...








함수를 직접 만들고 싶니?

후후후...




다음 화에 계속...

반응형
  Comments,     Trackbacks
엑셀 할머니 20 - 엑셀 ROW와 COLUMN으로 셀 주소 알아내기
반응형






할머니, 행렬은 왜 행렬이라고 부르죠?





행렬은 영어로 MATRIX라고 하지.

MATRIX에는 어머니, 자궁이라는 뜻이 있단다.

아마 종이 위 숫자를 2차원으로 담은 행렬이

아이를 품은 자궁과 비슷해서 그런 걸지도 모르지.






훗날 MATRIX가 일본에 들어오고,

일본 사람들은 그걸 행렬이라고 번역했지.

말 그대로 행렬에는 행과 열이 있으니까.






국가, 사회, 기술...

일본인들이 근대에 번역한 서양 언어들은

지금 우리나라도 널리 쓰고 있지.






할머니, 그나저나

셀의 주소를 알 수 있는 방법이 있나요?





그럼, 있고말고.

엑셀엔 ROW와 COLUMN이라는 함수가 있단다.










ROW와 COLUMN은 각각 셀의 행 주소와 셀 주소를 반환하는 함수다.

그냥 함수 뒤에 셀 주소만 넣으면 되지.







예를 들어 셀 C4를 ROW 함수에 넣으면 4를 반환하고,

COLUMN 함수에 넣으면 3을 반환한다.

C4는 4번째 행, 3번째 열에 있기 때문이지.








만약 두 함수에 아무것도 넣지 않으면

함수를 적은 그 셀의 행과 열을 각각 반환한단다.











뭐, 표가 아주 크지 않은 이상

행과 열은

그냥 보고 적으면 될 것 같기도 하네요.








ROW와 COLUMN은 시트에 행과 열을 추가하거나 삭제하면

그 추가와 삭제를 반영한단다.

그냥 행과 열을 적어넣어서는 할 수가 없지.







게다가 두 함수는 범위를 반환할 수도 있어.








예를 들어 이 범위(A1:A3)의 행 주소를 알고 싶다고 하자.





범위가 세 줄이니까

반환할 범위도 세 줄이겠지?






원하는 세 칸을 드래그해서

ROW 함수에 범위를 넣은 다음,

CTRL+SHIFT+ENTER를 누르렴.





기억 나요.

범위를 반환할 때

그 키를 입력했죠?





그런데 혹시 말이죠.

셀 주소를 'X행 Y열' 처럼 쓸 수는 없을까요?

좌표처럼요.






물론 있지.

&를 활용하면 된다.







&가 뭐죠?







지금은 그냥

'문자와 문자를 이어주는 접착제'라고만 해 두자.






좌표를 알기 원하는 셀이 D7이라고 하자.

그럼 이렇게 써 보려무나.





= ROW(D7)&"행 "&COLUMN(D7)&"열"







와!

결과에 텍스트를 넣을 수도 있었네요.








&랑 큰따옴표만 알면 누구나 가능한 비법이란다.

반응형
  Comments,     Trackbacks
엑셀 할머니 19화 - 엑셀 사진 삽입하기
반응형






음.... 넣을까 말까...







민호야. 혹시 야한 생각 하니?






네? 왜 그런 말씀을 하세요?







방금 넣는다고... 아니다.

분명 엑셀 생각이었겠지?







맞아요.

엑셀로 보고서를 쓰다 보니

그림이나 사진을 넣을까 하는 생각이 들어서요.







회사 보고서나 학교 레포트 파일에 그림을 넣기는 좀 그렇지만.

이건 동아리에 쓸 파일이니까.

그림을 넣어서 분위기를 살려 보려고요.




음, 민호는 감성도 풍부하구나.

그럼 넣으면 되지 않니?






네, 물론 삽입 리본에서

'그림'을 눌러서 그림을 불러오면 되죠.







그런데 그림이 셀에 비해 너무 크고,

셀에 정확히 넣기가 불편해서요.







그럼 이 할미가 민호한테

엑셀 그림 다루는 법을 알려줘야겠구나.







일단 마우스로 그림 크기를 바꾸고 회전하는 법은 알지?








네, 그냥 클릭하고 점을 드래그하면 크기가 바뀌고

돌아가는 화살표를 눌러서 그림을 회전시키잖아요.









정밀하게 바꾸고 싶다면 마우스 오른쪽 버튼을 눌러

'크기 및 속성'을 누른 다음 정확한 수치를 입력하면 되고요.







Ctrl키와 Alt키를 사용해서 그림을 조절하는 법도 아니?





그런 방법이 있나요?
















Ctrl키를 누른 채 방향키를 누르면 그림이 아주 조금씩 움직이지.







Ctrl키를 누른 채 그림 크기를 조절하면

그림의 중심점이 고정된 채 크기가 바뀐단다.









Alt키를 누른 채 방향키를 누르면 그림이 회전한단다.






Alt키를 누른 채 그림 크기를 조절하면

그림 모서리가 셀 경계에 달라붙으면서 크기가 달라지지.

셀 안에 그림을 꽉 채우고 싶을 때 유용하단다.





아, 혹시 반투명한 그림을 셀 배경으로 쓰고 싶다면,

그림도구 - 서식 리본에서 색 - 다시 칠하기 - 희미하게를 누르렴.



* 그림을 셀에 고정하려면 매크로가 필요합니다. 훗날 알려드리겠습니다.









셀 경계에 그림을 맞추는 다른 방법도 있다.







그림 도구 - 서식 리본에서 맞춤 - '눈금에 맞춤'을 눌러 활성화하렴.






그럼 그림을 이동하거나 크기를 바꿀 때마다 셀 경계에 달라붙게 된다.

물론 비활성화할 수도 있고.






혹시라도 그림이 많아서 관리하고 싶다면,

서식 리본에서 '선택 창'을 누르렴.

지금 시트에 있는 모든 그림들 리스트가 나온단다.







여러 그림들을 정렬하고 싶으면

서식 리본에서 '맞춤'을 누르렴.






그림들의 중심선을 정렬하거나

왼쪽, 오른쪽을 정렬할 수 있어요.




아니면 '회전' 메뉴에서

그림을 회전시키거나

좌우, 상하 반전을 할 수 있지.






고마워요, 할머니!

반응형
  Comments,     Trackbacks
엑셀 할머니 18화 - 엑셀 FIND함수와 응용
반응형





동아리를 후원하는 선배님들의 이름과 번호목록인데, 여기서 이름만 추출하라니...






MID 함수를 사용해서 첫 글자부터 따오라고 명령할 수 있는데...

이름이 두 글자, 네 글자인 사람도 있으니 어렵겠는걸






민호가 MID 함수를 알다니 의외구나.





에헷. 할머니.

저도 인터넷이 있으니까요.






인터넷이 처음 나왔을 때가 생각나는구나.

저승에서도 뜨거운 감자였지.




세계인들이 서로 소통한다면

전쟁도 가난도 조금은 줄어들지 않을까 싶었는데...

별풍선으로 예쁜 아가씨들 가난은 조금 준 것 같기도 하고.






왠지 남은 인류로서 죄책감이 드네요...












아무튼 민호야

이럴 때는 FIND 함수를 사용해보자.





FIND 함수요?

찾는 함수인가요?




그렇지.

정확히 말해 FIND함수는

원하는 텍스트의 위치를 알려주는 함수란다.







예를 들어 '대한민국만세'라는 텍스트에서

'국'이 몇 번째 글자인지 알고 싶으면








=FIND("국", 셀 주소)를 입력하면 된다.






텍스트가 여러 개면 어떡하죠?

'영국미국태국...'에서 '국'을 찾는다면요?







FIND 함수는

제일 먼저 나오는 결과만 찾는다.





한 글자뿐 아니라

여러 글자의 위치도 찾을 수 있지.

이때는 첫 글자의 위치를 반환한단다.



* FIND 함수와 관하여

- 한글, 영어 전부 찾습니다.

- 한 글자, 여러 글자로 찾을 수 있습니다.

- 영어는 대소문자를 구분하므로 주의!

- 띄어쓰기도 1로 취급합니다.



* 검색 시작 위치


- FIND 함수 마지막은 검색 시작위치를 지정합니다. 생략하면 1, 즉 첫 글자부터 검색합니다. 2를 넣으면 두 번째 글자부터, 3을 넣으면 세 번째 글자부터... 검색합니다.



- 검색 시작위치가 바뀌어도 검색되는 한 결과는 같습니다. '대한민국만세'에서 검색 시작위치가 1이든 2든 '국'은 네 번째 글자이므로 함수는 4를 반환합니다. 다만 검색 시작위치가 5라면 '국'은 검색되지 않습니다.








그런데 FIND함수로

어떻게 원하는 텍스트를 뽑아내죠?




지금 전화번호는 모두 TEL로 시작하지?

그럼 T 이전까지만 텍스트를 뽑아내면 되겠지?





맞아요.

그런데 이름 글자수가 서로 달라서

뽑아낼 글자수를 함부로 못 정해요.



무슨 고민이니?

FIND 함수는 이름이 몇 글자든

"T"까지가 몇 글자인지 알아내 줄 텐데.






=MID( 셀 주소, 1, FIND("T", 셀 주소)-1)

이라고 입력해 봐라.





저 입력의 뜻은

셀에서 첫 글자부터 텍스트를 뽑아내되,

글자 수는...






첫 글자에서 T까지 텍스트 수에서 1(띄어쓰기)를

뺀 수만큼 텍스트를 추출하라는 뜻이지.








그럼 이름이 몇 글자든 T 전 위치까지만 텍스트를 불러올 수 있단다.






고마워요 할머니!





* FINDB 함수

- FINDB 함수는 FIND 함수와 기능이 같습니다. 다만 글자수 기준인 FIND 함수와는 달리 FINDB 함수는 바이트수 기준입니다.

- 영어와 숫자는 글자마다 1바이트, 한글은 글자마다 2바이트, 띄어쓰기는 1바이트입니다.

반응형
  Comments,     Trackbacks
엑셀 할머니 외전 3화 - 엑셀 vlookup 함수(+index, match)
반응형




안녕하세요.

엑셀 할머니 외전 시간이에요.






오늘은 엑셀 함수 중 하나인

vlookup 함수를 알아봅시다.






lookup. 영어로 검색한다는 뜻이죠.

무얼 검색한다는 걸까요?




번호와 이름, 수험번호를 적은 표가 있다고 합시다.

그런데 5번의 이름을 알고 싶어요.




함수가 없다면, 일일이 표를 훑어서

5번을 찾아 그 이름을 알아냈겠죠?





vlookup 함수는 그런 고생을 덜어주는 함수입니다.

표에서 원하는 행을 찾아서 원하는 항목을 알려주죠.





자, 이제 vlookup 함수로

5번의 이름과 수험번호를 알아봅시다.


vlookup 함수의 구성은 다음과 같답니다.









=vlookup( 우리가 아는 항목, 표 범위, 원하는 열 번호, TRUE/FALSE)


일단 예를 들어 써보죠.



=vlookup( 5 , 표 범위 , 2 , FALSE)

5 : 우리는 5번의 이름을 알고 싶어요.

표 범위 : 말 그대로 표를 드래그하세요.

2 : 드래그 범위 기준으로 이름은 두 번째 열에 있으니까요.

FALSE : TRUE는 유사한 내용을 검색하고 FALSE는 완전히 동일한 내용을 검색합니다. 지금은 5번이 확실히 있으니 FALSE를 씁니다.




엔터를 치면, 짜잔! 5번의 이름이 나오네요.

5번의 수험번호를 알고 싶다면, 열 번호를 3으로 써야겠죠.





지금이야 총 10명이지만

580명 중 127번의 이름과 수험번호를 찾을 때는 유용하겠죠.





* hlookup 함수



보시다시피 vlookup은 세로로 나열한 표에 쓰는 함수입니다.

그럼 가로로 나열한 표에는 어떤 함수를 쓸까요?

바로 hlookup 함수입니다. 






작동원리는 세로가 가로로 바뀌었을 뿐 같습니다.








* vlookup(+hlookup)의 치명적인 단점




안타깝게도 vlookup에는 큰 단점이 있습니다.

vlookup 함수는 드래그한 범위에서 맨 왼쪽 열만 검색이 가능합니다.




이렇게 드래그했으면 번호로 검색만(예 : 6번의 이름은?)



이렇게 드래그했으면 이름으로 검색만(예 : 이름이 김XX인 사람의 수험번호는?) 가능하죠.




따라서 오른쪽에서 왼쪽으로 검색할 수가 없습니다.

수험번호가 1011인 사람의 이름과 번호는 vlookup으로 알 수 없는 겁니다.





* index 함수와 match 함수 이용하기.




따라서 vlookup 함수 대신 index 함수와 match 함수를 이용하는 것이 더 유용합니다. 심지어 마이크로소프트 홈페이지에서도 권장하고 있죠.





자, 수험번호가 1011인 사람 이름을 바로 알아봅시다.




=index( 2열 범위, match(1011, 3열 범위, 0))

혹은

=index( 표 전체, match(1011, 3열 범위, 0) , 2)

(*마지막 2는 '원하는 값이 2열에 있다'는 뜻)







어때요, 참 쉽죠?

반응형
  Comments,     Trackbacks
엑셀 할머니 15화 - 엑셀 FREQUENCY 함수
반응형




으... 머리야...

맥주까진 괜찮았는데,

소맥은 너무하잖아...






내일까지 선후배들 점수를

정리해야 하는데.

점수대별로 인원수를 구하라니.




이것 참.

학생이 10명이 넘는데

언제 세지...






민호는 바보구나.






할머니, 조금 기분 나쁜데요?





당연히 기분 나빠야지.

엑셀이라는 최고의 프로그램을 앞에 두고

일일이 셀 생각부터 하다니 말이다.





그럼 엑셀에서 점수대별로 세는 기능이 따로 있나요?






기능까지 갈 필요도 없다.

아예 함수가 따로 있다.




정말요?

함수 이름이 뭐죠?







바로 FREQUENCY 함수란다.

FREQUENCY는 영어로 빈도수를 뜻하지.











말 그대로 원하는 숫자가 몇 번 나오는지 세어 주는 함수란다.






좋아요. 바로 시작해 보죠.





그럼 일단 점수 기준들을 이렇게 써 봐라.



그 다음 맨 위 칸부터 드래그를 해라.

이때 아래 칸보다 한 칸 더 드래그해야 한다.



그 다음 함수를 입력해라.




FREQUENCY에는 두 배열을 넣어야 된단다.

하나는 빈도수를 셀 원본 데이터, 다른 하나는 필터가 될 기준들이다.







그 다음 엔터를 치지 말고, CTRL + SHIFT + ENTER를 눌러라.










맞아요. 셀 하나가 아니라 배열로 쓰고 싶을 때는 그런 엔터를 치라고 하셨죠?

(엑셀 할머니 7화 - 행과 열 바꾸기 참고)






좋았어요. 데이터가 분류되었네요.






그런데 왜 맨 아래보다 한 칸 더 드래그하라고 하셨죠?







FREQUENCY 함수는 숫자 기준을 이런 식으로 잡는단다. 꼭 명심하렴.




그래서 10, 20.. 이 아니라 9, 19...로 쓰신 거군요.





*참고*

물론 범위 구분이 아닌 등급구분으로도 FREQUENCY 함수를 쓸 수 있습니다.








반응형
  Comments,     Trackbacks
엑셀 할머니 14화 - 엑셀 고급필터
반응형





이 시간에 친구한테 메일이?

'컴활 자격증 준비중인데 도와달라'고?






하긴. 나도 3학년인데

슬슬 준비를 해야지.






문제 : 고급필터를 사용해서 나이가 30세 이상, 점수가 50점 미만인 사람들을 추출하시오.





어디 보자. 엑셀 문제네.

고급 필터를 사용해서 분류를 하라고?







고급 필터가 뭐지?

처음 듣는 단어인데.





민호야.

엑셀은 언제나 할미한테 맡기렴.





할머니!

마침 잘 오셨어요.

고급 필터가 뭐죠?






엑셀 고급필터는 쉽게 말해

기준에 맞게 표를 다시 그리는 기능이라고 보면 된다.







여러 자료가 있는 표에서

기준에 맞추어서 새 표를 그리거나

원래 표를 축약할 수 있단다.








좋아요.

까짓거 시작해 보죠.







지식도 자신감이 중요한 법.

당장 시작해 보자꾸나.




일단 고급필터를 시작하려면

기준이 되는 표가 필요해요.

이걸 '조건 범위'라고 부른단다.






원래 표처럼 항목을 쓰되

필터링이 필요한 항목만 쓰렴

지금은 나이와 점수가 필요하니까

나이와 점수만 입력하렴




좋았어요. 다음은요?







이제 조건을 입력해야지.

나이와 점수 밑에 각각 필요한 조건을 입력해야 한다.





이때 고급필터에서 조건을 쓰는 방식을 유념해라.

고급필터는 같은 줄에 있는 조건은 전부 AND로 취급한단다.

즉, 같은 줄에 있는 조건을 모두 만족해야만 필터에서 살아남는다는 말이야.





하지만 다른 줄에 있으면 그건 OR로 취급한단다.

다른 줄에 있는 조건들 중 하나만 만족하면 조건에 맞는다는 거지.




이해하기 쉽게 그림으로 그려보면 다음과 같아요.









좋아요. 나이는 30세 이상, 점수는 50점 미만을

모두 만족해야 하니까, 같은 줄에 적어야겠죠.





이런 식으로요?






잘 했다.

이제 위 '데이터' 리본에서 '필터'(깔대기 모양)을 찾아라.

그 옆에 있는 '고급'을 누르렴.





목록범위는 필터링할 원래 표를,

조건범위는 아까 조건을 쓴 표를 드래그해 선택하렴.





원래 표를 축약해서 필터링할 수도

원하는 곳에 새 표를 만들 수도 있단다.

원래 표를 축약하면 조건에 안 맞는 줄이 자동 생략되니까

사라질까 봐 걱정하지 마라.




좋아요.

이번에는 새로운 표를 만들어보죠.





이곳에 새로운 표를 만들게 선택하고

확인을 누르면...




고급필터는 신기한데 조금은 귀찮은 기능이군요.





하지만 컴활 문제에 나온 이상 배울 수밖에 없겠지.






반응형
  Comments,     Trackbacks