목록함수 (106)
rand(life)
왼쪽에 "가"가 있는 숫자의 합을 내려면 A열과 B열만 놓고서는 SUMIF 함수를 쓰는 생각은 쉽게 할 수 있다SUMIF(A:A,"가",B:B)하지만 위의 그림처럼 여러 열에 걸쳐있다면?SUMIF함수를 여러번 더할 것인가?하지만 이럴 때 위의 그림처럼 영역을 지정하면 여러 열에 걸쳐서도 SUMIF함수를 쓸 수 있다게다가 가운데에 비어있는 열이 몇개 들어가도 상관없이 적용된다단, 지금처럼 참조열과 합계열 사이에 비어있는 열이 들어가는 식으로 불규칙적인 부분이 있으면 합계에서 제외된다.즉, =SUMIF(A1:N7,P2,C1:N7)이런 식으로 수식이 되어있다면 참조열인 A열과 합계열인 C열이 2개 간격이므로 그 이후에도 참조열과 합계열이 2개 간격인 규칙으로 N열까지 합계를 낼 수 있다.
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의 배열에 행번호를 곱한다 (해당 단어..
역시 네이버 지식인에서 누군가가 올려주신 해답에서 연구해볼만한 것입니다. 이렇게 데이타가 있을 때 이런 식으로 합계를 내야합니다.문제는 G,H,I열이 셀병합이 되어있다는 점입니다. 셀병합이 안되어있다면 SUMIFS함수로 간단하게 해결됩니다만....셀병합을 하면 제일 첫셀(여기서는 G3과 G12)에만 데이타가 들어있고, 나머지 병합된 부분에는 아무 데이터도 들어있지 않습니다. 그러니 평소처럼 SUMIFS함수를 쓰게 되면 G3,G12외에는 아무 데이터도 없으므로 오류가 나게 됩니다. 즉, 이 상태에서는 SUMIFS함수를 쓸 수 없다는 뜻입니다.(그래서 엑셀에서 수식을 단순하게 만드려면 셀병합은 가급적 피하는 것이 좋습니다.) 여기서 어떤 분이 답을 달았습니다.이렇게하면 셀병합을 해제하지 않아도 답을 구할 수..
네이버 지식인에서 알게 된 좋은 수식을 소개합니다. 이런 식으로 A1:D2 범위 내에 사람 이름이 중복된 것 포함해서 여러개 있습니다.이때 중복된 이름은 제외하고 모두 몇 명의 이름이 있는지 알고 싶을 때 쓰는 수식입니다. 수식은 위와 같습니다. 일단, 이 수식의 기본적인 구조는, 각 사람의 이름이 나올 때마다 그 자리에 전체 범위에서 그 사람의 이름이 나오는 횟수를 분모로, 1을 분자로 한 값을 배정하여, 나중에 그 모든 숫자를 합하는 것입니다. 간단한 예를 들어서, 다음과 같이 이름이 6개가 배열되어 있다고 합시다.홍길동,장길산,홍길동,홍길동,홍길동,장길산그럼 이름 대신에 그 자리에 다음 숫자를 배당합니다.0.25, 0.5, 0.25, 0.25, 0.25, 0.5홍길동은 총 4번 나오니 1/4해서 0..
"범위&범위"라고 주면 범위끼리 문자열을 합하여 배열을 만든다 예를 들어,이런 형태의 데이터를 이렇게 정리하기 위해 수식을 J3셀에서는 =INDEX($B$3:$D$14,MATCH($H3&$I3,INDEX($A$3:$A$13&$A$4:$A$14,),0),COLUMNS($J3:J3))M3셀에서는=INDEX($B$3:$D$14,MATCH($H3&$I3,INDEX($A$3:$A$13&$A$4:$A$14,),0)+1,COLUMNS($M3:M3))이렇게 준다. 여기서 가운데 있는 MATCH($H3&$I3,INDEX($A$3:$A$13&$A$4:$A$14,),0)이 수식의 의미는 다음과 같다 MATCH($H3&$I3 H3&I3의 값의 위치를 찾는데 H3&I3= 김태희서울 INDEX($A$3:$A$13&$A$4:$A$..