설찬범의 파라다이스
글쓰기와 닥터후, 엑셀, 통계학, 무료프로그램 배우기를 좋아하는 청년백수의 블로그
엑셀/엑셀 할머니 (33)
엑셀 할머니 3화 - 가중평균
반응형



좋아. 동아리 일은 끝났으니

레포트를 좀 써 볼까?





조원들이 직접 가서 잰 수치와

추측으로 구한 수치들이네...






민호야, 또 엑셀 중이구나.








앗! 노크라도 하고 들어오세요!

놀랐잖아요.





미안하다 얘야.

이승 구경은 질리지가 않구나.






아무튼 이번에는 걱정 마세요.

그냥 평균만 구하면 되니까요.





세상에 그냥 평균은 없단다.

모든 개념, 모든 물체는 찬찬히 살펴보면

다 다르거든.




예를 들면요?








지금 네가 구하려는 평균이 그렇단다.

직접 측정한 수치와 추측한 수치가

같은 취급을 받으면 불공평하잖니?






그럼 어떻게 하죠?







내가 시키는 대로 해 봐라.

직접 측정한 가치는 두 배 중요한 것 같으니

곱하기 2를 해서 평균을 구해봐라.







할머니, 그럼 안 돼요.

값을 두 배로 해버리면

평균이 너무 올라가는걸요.






그럼 나누는 값도 올려야지

지금까지 다섯 명의 평균을 내면

5로 나누지 않았니?





네, 할머니.






5로 나눈다는 것은

다섯 명이서 1씩 분담하는 거야.

수가 두 배가 되면

1이 아니라 2를 맡아야지





그러니까 할머니 말씀은,

직접 잰 수치는 곱하기 2를 하되

직접 잰 사람 수도 곱하기 2를 하라는 거군요.














정확하다, 얘야.

그걸 전문용어로는 가중평균이라고 하지

어느 값에 가중치(Weight)를 둔다는 말이란다.





와! 할머니는 그런 것도 알고 계셨군요.








쯧쯧. 민호가 이과를 갔어야 했는데...









그런데, 할머니. 엑셀에서 가중평균을 구하는

함수는 없나요?








일단 제일 쉬운 방법은

가중치와 숫자를 곱한 합을 구하고

가중치 합으로 나누는 것이지






함수는 따로 없고요?





합동결혼식처럼

셀과 셀들을 차례로 곱하는 함수를

써 보면 어떨까?






그런 함수가 있나요?














SUMPRODUCT가 그런 함수지.

원래 행렬 연산에 쓰이는 함수지만

단순 배열도 행렬의 한 종류니까

사용 가능하단다.




























보다시피

SUMPRODUCT에 두 배열을 넣으면

행렬 곱셈을 하듯이

두 배열을 차례차례 곱해서 더해준단다





어디 보자.

SUMPRODUCT 에 측정치 범위와

가중치 범위를 같이 넣으면...





측정치와 가중치를 각각 곱해서 더한 값이네요!






그 값을 가중치 합계로 나누면 되겠지.

SUM 함수를 이용해보렴.





오! 그냥 평균보다

뭔가 믿음직스러운데요.




그렇지?

물론 가중평균을 쓸지 말지, 가중치가 얼마일지는

잘 정해야 한단다.

무엇보다 평균 이야기는 아직 끝나지 않았어.

반응형
  Comments,     Trackbacks
엑셀 할머니 2화 - 평균내기
반응형

며칠 후...





좋았어. 정기공연도 잘 끝났으니 결산보고서를 작성해 볼까?








이번 정기공연은 관객과 동아리 선배들이 점수를 매겼다고 하던데. 평균을 내자.





메뉴에서 평균을 골라서 평균을 내 보면...





응? 평균이 생각보다 낮네.





...가 아니라! 누가 0점을 준 거야! 이럴 거면 점수를 제출하지 말라고. 0점은 제외하고 평균을 내야겠어. 그런데 어떻게 제외하지? 또 일일이 0점을 제외하고 더해야 하는 건가...







이잉. 민호가 또 고생이구나.







어, 할머니!







미안하다 얘야. 음악을 듣느라 늦었다.







할머니는 무슨 음악을 좋아하세요?







뭐 들리는 대로 듣지.

오늘은 모차르트와 레논인지 레몬인지 하는 가수가 같이 공연을 했단다.






그, 그래요...









아무튼 평균을 구하려는데 빵점을 제외한 평균을 구하고 싶은 것 아니냐?







네 맞아요.

평균은 홈 메뉴에 있는 '자동합계' 부분에서 구하거나

AVERAGE 함수를 이용하면 되는데, 이런 식이면

하나씩 더해서 나누는 수밖에 없겠어요.





이잉. 엑셀은 그리 단순한 프로그램이 아니야.

아무리 윈도우 만든 회사에서 만들었기쏘니

사람들이 왜 엑셀만 찾겠니.





그럼 이 경우에도 함수가 있나요?






그렇고말고. AVERAGEIF 함수가 있으면

지금 네 고민을 해결해줄 거다.








AVERAGEIF라, 평균(AVERAGE)과 만약(IF)이라니. 설마...











그래, 역시 내 증손주라 눈치가 빠르구나.

AVERAGEIF 함수는 범위 내에서 조건에 맞는 숫자만 평균을 내주는 함수란다.






그런 함수가 있었군요.

그럼 0을 제외하려면 어떤 조건을 입력해야 하죠?











AVERAGEIF 함수 뒤에는 평균을 구할 범위와 조건이 각각 들어간단다.

앞에는 구하려는 범위를 넣고, 뒤에는 "<>0"

을 한번 넣어보려무나.





어! 평균값이 올랐어요. 0이 제외된 모양인데요!




"<>0"을 넣었으니 0보다 작거나 0보다 큰 수만 평균에 들어갈 게다.

그러니 0은 제외되는 거지.









그런데 여기 AVERAGEIF 함수에 입력하는 [average_range]는 뭐죠?

괄호가 있으니 필수입력은 아닌 것 같은데...





나 닮아서 호기심도 좋아요.

[average_range]는 평균을 구할 실제 범위란다.

생략 시 range에 쓴 범위와 동일하게 계산되지.




예를 들어 이 표에서 3학년 이상 학생의 점수만 평균을 내고 싶다면...



기준의 대상이 되는 범위, 기준, 평균을 구할 범위 순대로 입력하면 된단다.








오늘도 또 배워가네요.

고맙습니다 할... 어? 이 시간에 웬 전화.





여보세요? 어, 하~ 알았어.









표정이 안 좋아 보이는구나.







동아리에서 온 전화예요.

이번 경연 평균점수를 낼 때 최댓값과 최솟값을 제외하라네요.

참. 무슨 올림픽 체조도 아니고...





MAX 함수와 MIN 함수로 가장 큰 수와 작은 수를 전체합에서 빼고,

인원수에서 2씩 빼서 나누면 되겠죠.








굳이 그렇게 할 필요가 없다.

엑셀 함수가 있는데 손으로 할 필요는 없잖니?





여기에도 함수가 있나요?






사실 '최댓값과 최솟값만 제외하고 평균을 내는 함수'는 없단다

하지만 비슷한 함수로 AVERAGEIFSTRIMMEAN 함수가 있지.






뭔가 어려워지는걸요.






시작은 늘 어려워.

그걸 버텨내고 달성해야 달콤한 거란다.






AVERAGEIFS는 AVERAGEIF에 S가 붙었네요.

영어에서 복수에 S 붙이는 것도 아니고...





놀랍게도 그게 맞단다.

AVERAGEIFS 함수는 여러 조건들을 만족하는 셀의 평균을 구하는 함수란다.

AVERAGEIF 함수를 여러 개 합쳐놓은 것과 같지.





그럼 조건이 둘 필요하겠네요.

하나는 최댓값 제외, 다른 하나는 최솟값 제외.






AVERAGEIFS 함수 구성은 위 그림과 같단다.

평균을 구할 범위, 첫 조건의 대상범위, 첫 조건...








지금은 모든 범위를 평균을 구할 점수대로 하고, 조건에는 

"<"&MAX(범위) ">"&MIN(범위)를 넣어보려무나.









어디 보자, 범위는 점수대로 하고

할머니가 말씀하신 조건을 넣으면...




와! 신기하네요.




그런데 AVERAGEIFS 함수를 쓰려니 조금 피곤하네요.

매 조건마다 조건범위를 입력하니 함수가 길어지기도 하고...











그럼 TRIMMEAN 함수를 써 보는 건 어떠니?

TRIMMEAN 함수는 상, 하위 비율을 제외하고 평균을 구하는 함수란다.





비율이요?

개수가 아니라요?




지금 민호가 쓰는 결산내역은 사람 수가 적지만,

나중에 몇 백, 몇 천 명의 숫자를 다룰 때는

갯수보다는 비율이 훨씬 쓸만할 거란다.

1명이 차지하는 비율 정도는 구할 수 있지 않겠니?





알았어요.

사람이 총 10명이니까. 한 명이 차지하는 비율은 10%.

위아래로 10%만 제외하면 되겠네요.




조심해야 한단다.

TRIMMEAN 함수에 입력할 제외 비율은

위아래를 합친 비율이란다.

그러니 0.1이 아니라 0.2를 입력해야 한다. 



주의!

TRIMMEAN 함수가 제외하는 셀 개수가 홀수로 계산된다면,

함수는 하나를 포기하고 짝수개를 반으로 나누어 위아래에서 제외합니다

(예 : 50개 데이터에서 0.3 비율로 제외한다면 15개가 아니라 14개(상위 7 + 하위 7)가 제외됩니다.)




좋았어. 할머니 말씀대로 위아래를 합쳐서 0.2만큼...






어라?

AVERAGEIFS로 구한 평균과 TRIMMEAN으로 구한 평균이

다른데요?





그건 두 함수가 조금 다르게 처리해서 그렇단다.

AVERAGEIFS 함수에는 부등호를 썼지?

그러니 최댓값과 최솟값을 가진 점수는 전부 제외되었지.




그런데 TRIMMEAN 함수는

상, 하위 비율만큼만 잘라내는 방식이기 때문에

최댓값, 최솟값 중 정해진 개수만 제외된단다.





그러니까 AVERAGEIFS에서는 공동 1등과 공동 꼴등이 모두 제외된 반면,

TRIMMEAN 함수에서는 1등과 꼴등 중 하나씩만 제외된 거군요!




잘 하는구나!

평균의 세계는 생각보다 넓단다.

아직 남은 이야기가 무궁무진하지!

다음 시간을 기대하려무나.





반응형
  Comments,     Trackbacks
엑셀 할머니 1화 - 상대참조와 절대참조
반응형

 

 

어느 늦은 밤...

 

 

 

 

 

민호 "동아리 부부장에 괜히 들어갔나... 이런 밤까지 명세서를 작성해야 하다니..."

 

 

 

  좋아. 다음 주 정기공연 티켓 예상판매급액을 구해야 하네...

  한 사람당 티켓 값은 5000원. 멤버들이 친구들한테 나눠준다면서 가져갔으니 멤버들이 가져간 숫자에 값을 곱하면 되겠지.

 

 

 

  첫 셀에 곱하기 수식을 쓰고,

 

 

밑으로 당기면 자동 채우기가 돼서...

 

 

 

엥? 숫자가 왜 이러지?

 

 

 

뭐야! 가격 셀 주소까지 내려갔네. 여기는 내려갈 필요 없는데.

 

 

 

 

 

  이래서 엑셀이 어렵다니까. 꼭 필요할 때 실수를 해요. 일일이 곱하거나 그냥 숫자를 넣을 수밖에...

 

 

"민호야!"

 

 

 

 

엥? 누가 날 부른 것 같은데...

 

 

 

 

민호야! 나다!

 

 

 

 

헉! 귀, 귀신? 그런데 어디서 본 것 같은데...

 

 

 

 

 

 

민호야! 네 증조할머니다.

 

 

 

 

 

맞다! 증조할머니다. 어릴 적에 돌아가셨는데...

할머니가 여기는 웬일로...

 

 

 

 

웬일이긴. 민호가 엑셀을 못 쓴다고 해서 도와주려고 찾아왔단다.

 

 

 

 

 

 

할머니가 살아계실 땐 엑셀이 있지도 않았을 것 같은데요?

 

 

 

 

 

무슨 말이냐. 저승에서 똑똑한 사람들을 만나면서 많이 배웠지.

 

 

 

 

 

그, 그런가요...

 

 

 

 

 

 

 

 

 

아무튼 지금 자동 채우기에서 셀 주소가 불필요하게 변해서 고민이지?

 

 

 

 

 

아, 네! 자동 채우기로 내리니까

앞에 있는 셀 주소도 같이 내려가네요. 저건 내려갈 필요가 없는데...

 

 

 

 

에잉. 민호는 상대참조절대참조부터 알아야겠구나.

 

 

 

 

상대참조와 절대참조요?

 

 

 

 

그래. 방금 자동 채우기로 채우면서 셀 주소가 같이 바뀌었지?

그렇게 수식이 있는 위치가 바뀌면

참조하는 셀 주소도 바뀌는 방식을 상대참조라고 하지.

 

 

 

그렇군요. 지금은 상대참조가 안 생겨야 좋을 텐데요.

 

 

 

 

그럼 상대참조를 절대참조로 바꾸면 된단다.

절대참조는 수식이 있는 위치가 바뀌어도

참조하는 셀 주소가 바뀌지 않아.

 

 

 

 

정말요? 절대참조만 할 줄 알면 계산할 셀 위치를 고정해두고 자동 채우기를 할 수 있겠네요. 상대참조는 절대참조로 어떻게 바꾸죠?

 

 

 

 

자동 채우기 전 맨 첫 번째 셀로 가렴.

 

 

 

 

 

여기서 안 바뀌었으면 하는 셀 주소에 $을 넣으렴.

행 주소와 열 주소 앞에 각각 하나씩 넣어야 해.

 

 

 

이렇게요? 그 다음 자동 채우기를 하면...

 

 

 

 

우와! 셀 주소가 정말 바뀌지 않네요!

 

 

 

헤헤. 저승에 있는 할미보다 엑셀을 모르면 어떡하니.

또 하나 알려주리?

 

 

 

네, 네! 알려주세요!

 

 

 

 

 

 

 

일일이 $를 넣기가 귀찮으면 셀 주소를 드래그하고

F4를 누르면 절대참조로 바뀐단다. 단축키지.

 

 

 

 

 

 

알겠어요. 고맙습니다. 증조할머니.

 

 

 

 

혹시 행이나 열, 둘 중 하나면 절대참조로 바꾸고 싶으면

그 주소 앞에만 $를 넣으려무나.

$A4라든가 B$2처럼 말이다.

이러면 $가 앞에 붙은 쪽만 바뀌지 않는단다.

 

 

 

할머니의 요점정리

 

상대참조 : 수식이 있는 셀이 바뀌면 참조하는 셀도 바뀜

절대참조 : 수식이 있는 셀이 바뀌어도 참조하는 셀이 바뀌지 않음

혼합참조 : 한 수식에 상대참조와 절대참조가 혼합

반응형
  Comments,     Trackbacks