목록배열 (22)
rand(life)
이런 식으로 과일에 대한 가격이 매겨져 있습니다. 이제 다른 곳에 견적서를 작성한다고 하면, 품명에 "사과" "배' 등으로 기록하면 그 품목에 대한 가격을 구하는 것은 VLOOKUP함수로 쉽게 할 수 있습니다. 하지만, 지금처럼 해당 품명이 들어있긴하지만 다른 문자들과 섞여 들어가 있어 VLOOKUP함수를 그대로 적용할수는 없는 상황이 있습니다. 이런때, 다른 문자들이 섞여 있긴 하지만 해당 품목을 문자속에서 찾아서 해당 품목의 가격을 알고 싶다면 어떻게 할까요? 큰형님이 멋진 답을 주셨습니다. =LOOKUP(1,1/FIND($E$2:$E$7,A2),$F$2:$F$7) 수식 해석 함수 LOOKUP(1 1을 다음 배열에서 찾는다 1/ 뒤의 배열에 있는 숫자각각으로 1을 나눈다 lookup함수의 두번째인수,..
이렇게 단어시험 문제를 낸다고 합시다. 시험범위는 B1~D1이고총 시험문항수는 D4우리말 뜻쓰기 유형 문항수는 C3영어철자쓰기 유형 문항수는 C4무작위로 저 조건에 맞게 단어를 추출하려면 어떻게 해야할까요?대개 이런 유형의 문제들은 배열함수가 답입니다. 편의상 4번 문항의 수식을 예로 들겠습니다.B13에 들어가는 수식은 위와 같습니다. 배열수식이므로 마지막에 Ctrl-Shift-Enter입니다수식의 각 부분의 해석은 다음과 같습니다. 수식해석기능(함수)=IF($A13 OFFSET 위치 이동 함수(IF($A13한국어 문항수보다 문항번호가 작을 때, list시트의 C열(영어) 첫행 선택. 아니면 D열(한국어) 첫행 선택offset함수의 인수. 이 위치에서 특정 거리만큼 이동함.MOD 나머지의 크기에 따라 문..
위의 표에서, C열에 "하분류"에 단어들이 들어가 있다. 하분류를 넣으면 상분류, 중분류까지 나오게 하고 싶다 이런 식으로 정리가 되어있다면 INDEX, match함수로 간단하게 될 것이다. 하분류가 A열에 가 있다면 VLOOKUP함수로 더욱 간단하게 된다. 하지만 지금 형태를 그대로 두고서 수식을 만들면 위와 같다말로 설명하면 다음과 같다(FIND($E2,$C$2:$C$7)): E2에 있는 단어 "호박"이란 단어가 C2:C7의 배열에서 어느 셀에 위치하는지 찾아서ISERROR : 배열에 결과값이 숫자인지 오류인지 확인 (숫자가 결과값이라면 해당 단어가 존재한다는 의미)NOT ~~ *1 : 결과값이 오류이면 0을, 숫자이면 1을 부여SUMPRODUCT : 위의 0과1의 배열에 행번호를 곱한다 (해당 단어..
네이버 지식인에서 알게 된 좋은 수식을 소개합니다. 이런 식으로 A1:D2 범위 내에 사람 이름이 중복된 것 포함해서 여러개 있습니다.이때 중복된 이름은 제외하고 모두 몇 명의 이름이 있는지 알고 싶을 때 쓰는 수식입니다. 수식은 위와 같습니다. 일단, 이 수식의 기본적인 구조는, 각 사람의 이름이 나올 때마다 그 자리에 전체 범위에서 그 사람의 이름이 나오는 횟수를 분모로, 1을 분자로 한 값을 배정하여, 나중에 그 모든 숫자를 합하는 것입니다. 간단한 예를 들어서, 다음과 같이 이름이 6개가 배열되어 있다고 합시다.홍길동,장길산,홍길동,홍길동,홍길동,장길산그럼 이름 대신에 그 자리에 다음 숫자를 배당합니다.0.25, 0.5, 0.25, 0.25, 0.25, 0.5홍길동은 총 4번 나오니 1/4해서 0..
지난번 엑셀 강좌의 마지막은 배열수식으로 하려 했습니다만, 저도 잘 모르고, 이것을 실제 써 먹을 수 있는 일이 얼마나 있을까해서 망설였습니다. 그러다 뜻밖에 시간이 나게 된 오늘 배열수식에 대해 잠시 알아보는 시간을 가질까 합니다. 위 그림은 연이율5%일때 빌린 돈(원금)의 액수와 빌린 기간(햇수)에 따른 이자를 계산해주는 표입니다. 원금X햇수X이율 하면 총 지불해야할 이자가 나오겠지요? 그런데 이 수식을 c3셀에 넣고 아래로 끌기하면 그 아래 셀에서는 0으로 나옵니다. 오, 그럼 이자를 지불하지 않아도 되는 건가요? ㅋㅋ C6셀을 클릭해보시면 끌어채우기를 하면서 수식이 변경된 것을 알 수 있습니다. 지난 번에 살펴보았던 대로, 절대주소와 상대주소를 적절히 사용하여 수식을 다시 써보면, 위와 같이 됩니..
오늘은 SUMPRODUCT함수를 다룹니다. 이 블로그의 다른 글을 다 읽으신 분이라면 SUMPRODUCT함수에 대해서 알고 계실 것입니다만, 오늘은 석차를 낼때 사용하는 예를 들어 설명해 보겠습니다. 주어진 배열에서 해당 요소를 모두 곱하고 그 곱의 합계를 반환합니다. 구문 SUMPRODUCT(array1,array2,array3, ...) array1, array2, array3, ... 곱한 후 더할 값이 들어 있는 배열을 지정합니다. 2개에서 255개 사이의 배열을 사용할 수 있습니다. 주의 인수로 사용하는 배열의 차원은 모두 같아야 합니다. 차원이 같지 않으면 #VALUE! 오류 값이 반환됩니다. 숫자가 아닌 배열 항목은 0으로 처리됩니다. SUMPRODUCT함수는 다음에 이야기하게 될 "배열함수..