목록vlookup (11)
rand(life)
성명 주민번호 김1 111111-1111111 김2 111111-1111112 김3 111111-1111113 김4 111111-1111114 김5 111111-1111115 김6 111111-1111116 이런식의 구조로 된 표에서 사람이름을 주면 주민번호를 찾는 방법은 vlookup을 쓰면 간단히 해결된다. 하지만, 데이터가 좌우로 넓게 퍼져있다면? 성명 주민번호 성명 주민번호 성명 주민번호 김1 111111-1111111 이1 222222-2222222 박1 333333-3333333 김2 111111-1111112 이2 222222-2222223 박2 333333-3333334 김3 111111-1111113 이3 222222-2222224 박3 333333-3333335 김4 111111-111..
이런 식으로 과일에 대한 가격이 매겨져 있습니다. 이제 다른 곳에 견적서를 작성한다고 하면, 품명에 "사과" "배' 등으로 기록하면 그 품목에 대한 가격을 구하는 것은 VLOOKUP함수로 쉽게 할 수 있습니다. 하지만, 지금처럼 해당 품명이 들어있긴하지만 다른 문자들과 섞여 들어가 있어 VLOOKUP함수를 그대로 적용할수는 없는 상황이 있습니다. 이런때, 다른 문자들이 섞여 있긴 하지만 해당 품목을 문자속에서 찾아서 해당 품목의 가격을 알고 싶다면 어떻게 할까요? 큰형님이 멋진 답을 주셨습니다. =LOOKUP(1,1/FIND($E$2:$E$7,A2),$F$2:$F$7) 수식 해석 함수 LOOKUP(1 1을 다음 배열에서 찾는다 1/ 뒤의 배열에 있는 숫자각각으로 1을 나눈다 lookup함수의 두번째인수,..
INDEX함수가 상당히 자주 쓰이는 유용한 함수인데 작년에 빠뜨려서 이번에 보충합니다. 엑셀 도움말에는 다음과 같이 되어있습니다. INDEX(array,row_num,column_num) array 배열 상수나 셀 범위입니다. 배열에 행이나 열이 하나만 있을 때는 row_num이나 column_num 인수를 생략할 수 있습니다. 배열에 행과 열이 두 개 이상 있을 때 row_num이나 column_num만 사용하면 배열의 전체 행이나 열이 하나의 배열로 반환됩니다. row_num 값을 반환할 배열의 행을 선택합니다. row_num을 생략하면 column_num을 지정해야 합니다. column_num 값을 반환할 배열의 열을 선택합니다. column_num을 생략하면 row_num을 지정해야 합니다. 주의..
다음 그림과 같은 작업을 하고 싶을 때가 있습니다. 왼쪽처럼 학생들의 신청과목을 한 열에 한 과목씩 일렬로 받아둔 것을 오른쪽 그림처럼 한 학생의 모든 신청과목을 한 줄에 입력하는 작업입니다. VLOOKUP함수를 써서 10101을 찾아 한 칸 오른쪽에 있는 값을 불러오면, 맨 위에 있는 값만 가져오기 때문에 "영어"만 출력됩니다. 앞으로 엑셀에서 VLOOKUP함수가 두 번째, 세번째 일치하는 값도 찾을 수 있도록 옵션을 제공한다면 간단히 해결되겠지만, 그 전에는 이런 작업을 하려면 VBA를 사용해야할 듯 합니다. 다음은 ConcatText라는 사용자정의 함수를 만드는 VBA입니다. Alt + F11 하셔서 삽입-모듈에서 다음을 붙여넣으세요. Function ConcatText(ByVal 범위 As Ran..
방명록에서 한 분이 질문을 주셨습니다. VLOOKUP 함수에서 =VLOOKUP(H2,가족!B1:BA40,24,FALSE) 이런 함수가 있다고 하면. 이 시트 H2의 글자를 가족시트에서 찾은 후 24칸 다음 놈을 잡에서 보여주어야하는데. [24다음칸]에 아무런 정보가 입력되지 않았을 경우에는 0이 나오더라고요. 혹시 0이 나오지 않고 그냥 공란으로 자동으로 남게 할 수 있을까요? 예를 들면, 위와 같은 표에서, 조성옥이라는 이름에 해당하는 강좌명이 비어있기에 0이 출력됩니다. 이 0을 출력되지 않게 하려면 어떻게 할 것인가하는 질문입니다. 답은 두 가지입니다. 첫번째는, IF조건문을 이용해서, 결과값이 0이면 공백("")을 출력하라는 구문을 삽입하는 것입니다. 대신에 함수가 길어지겠지요. 이런식으로 될 것..
점수를 구간으로 나누어 각 구간마다 등급을 매기고 싶을 때가 있습니다. 지난번에 소개한 것처럼 사용자정의함수를 이용하는 방법도 있습니다만, 좀 더 간단한 방법을 보여드리려고 합니다. 바로 vlookup 함수를 사용하는 방법입니다. VLOOKUP함수의 구문중 다음 주의사항을 한번 보시죠. VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) range_lookup 정확하게 일치하는 값을 찾을 것인지, 근사값을 찾을 것인지를 결정하는 논리값입니다. TRUE이거나 생략되면 정확한 값이나 근사값을 반환합니다. 정확하게 일치하는 값이 없으면 lookup_value보다 작으면서 그 다음으로 가장 큰 값을 반환합니다.table_array의 첫 번째 열 값은 오름..
지난번에 엑셀로 이원목적 분류표를 만들었습니다. 여러가지 경우의 수를 생각하면서 수식을 만들다보니 이렇게 고생할바에야 그냥 개수를 세는게 낫겠다는 생각도 들었지만, 써보니 편하다고 말씀하시는 분들이 많아 보람도 느낍니다. 사소한 몇가지 오류를 수정하여 이전포스트에 올려두었습니다. 그리고 또 한가지 느낀 점은, 엑셀을 거의 사용하지 않으시는 분들이 의외로 많다는 것이었습니다. 제가 이것을 만들때는 어느정도는 엑셀을 사용할 줄 아시는 분들을 대상으로 만들었기에, 엑셀을 처음 다뤄보시는 분들이 난감해 하는 것을 볼때 제가 편하자고 만든 것이 또 어떤 분에게는 불편함이 되는구나 하는 생각도 들었습니다. 그래서, 다음 버전업때는 엑셀 초보이신 분들도 큰 불편없이 사용할 수 있게 대대적으로 바꾸어 볼까 합니다. 예..
오늘은 COLUMN함수입니다. 지난번에 잠깐 언급했던 ROW함수와 짝을 이루는 함수입니다. 그때 제대로 설명못했으니, 이번에COLUMN함수를 설명하는 김에 ROW함수를 잠깐 언급하겠습니다. ROW(reference) reference 행 번호를 구할 셀 또는 셀 범위입니다. reference를 생략하면 ROW 함수를 입력한 셀의 참조가 사용됩니다. reference가 셀 범위이고 ROW를 세로 (배열: 여러 가지 결과를 만들거나 행과 열로 구성되는 인수 그룹에 대해 연산이 이루어지는 한 개의 수식을 작성하기 위해 사용됩니다. 배열 범위는 공통 수식을 공유하며 배열 상수는 한 개의 인수로 사용되는 상수 그룹입니다.)로 입력한 경우에는 참조의 행 번호가 세로 배열로 반환됩니다. reference는 여러 개의..