목록배열함수 (5)
rand(life)
오늘은 오랜만에 배열수식 아래와 같은 표에서 가장 최근에 출고한 날짜를 찾는 함수이다주의할 것은 날짜가 정렬이 되어있지 않다는 것. 날짜 입고 출고 재고 06월 01일 20 100 07월 01일 50 150 08월 01일 60 90 07월 13일 30 120 07월 31일 40 80 07월 14일 20 100 배열수식을 이용한다. {=MAX(IF(C4:C9"",A4:A9))} C4:C9""을 먼저 계산하여 {TRUE;FALSE;TRUE;FALSE;TRUE;FALSE} 를 만들고그 다음에 A4:A9의 값인{42887;42917;42948;42929;42947;42930}와 함께 IF에 의해 합치면 IF({TRUE;FALSE;TRUE;FALSE;TRUE;FALSE}, {42887;42917;42948;429..
B열의 숫자처럼 보이는 것은 vlookup함수로 땡겨온것이라 엑셀에서는 문자 취급한다.B열 합계를 내려면 SUM함수로는 안되고 value함수를 써서 C열에 숫자로 바꾼 다음C열의 합계를 내면 된다.하지만 C열 추가하지 말고 B열에서 바로 수식을 써서 합계를 내고 싶다면?중간에 있는 "휴무"라는 텍스트가 SUM함수에서는 오류를 반환하기 때문에, 이 부분을 어떻게 0으로 인식하도록 만들어주는가가 관건이다. 나도 수식을 만들어보았지만 너무 길었는데, 네이버 지식인에서 언제나 믿고 보는 큰형님이 다음과 같은 답을 제시했다. {=SUM(IFERROR(B2:B9*1,0))}이 얼마나 간결하고 우아한가!계산단계는 다음과 같다. (참고로, 배열함수이다)
이런 식으로 과일에 대한 가격이 매겨져 있습니다. 이제 다른 곳에 견적서를 작성한다고 하면, 품명에 "사과" "배' 등으로 기록하면 그 품목에 대한 가격을 구하는 것은 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의 배열에 행번호를 곱한다 (해당 단어..