목록함수 (106)
rand(life)
위의 경우에서처럼, 3행이 숨겨져 있는데, 거기에 숫자 3이 쓰여있다countif함수를 써서 A1:A5범위에서 3의 개수를 찾으라고 하면 숨겨진 3행도 포함하여 찾기에 1이라는 결과가 나온다 만약, 숨겨진 셀은 제외하고, 보이는 셀에서만 countif함수를 적용하려면 어떻게 할까?subtotal이라는 함수는 숨겨진 셀을 제외하고 보이는 셀만 셀 수 있는 함수다. 다만, countif처럼 조건을 줄 수는 없고위에 링크된 글에서 보듯이,셀의 개수, 평균, 합계, 최대값, 최소값 등을 낼 수 있다. 지식인에 질문글을 올렸더니 기발한 답이 도착했다.답은 아래와 같다.=SUMPRODUCT(--(A1:A5=C9), SUBTOTAL(103,OFFSET(A1,ROW(A1:A5)-ROW(A1),0))) 여기서 핵심은 아..
[수식으로 날짜 계산을 위한 팁]지식인에서 근태 관련한 질문에 대한 답변으로 나온 수식이다. 1. Mod함수 이용F3에는 2017-10-31 9:15:00 PM 와 같은 날짜+시간 값이들어있다 여기서 MOD(F3,1)-TIME(18,,) 이렇게하면 9:15:00 PM에서 6:00:00 PM 을 뺀 값인 3:15:00 이 나온다. 2017-10-31 9:15:00 PM 은 엑셀에서 43039.8854166677 과 같이 계산하는데여기서 정수 부분은 날짜를, 소수부분은 시간을 나타낸다. 그러므로 여기서 시간 부분만 가져오려면1로 나눈 나머지를 구하는 수식 Mod(F3, 1)을 쓴다 그러면 43039.8854166677 을 1로 나눈 나머지인 0.8854166677가 결과로 나오게 되며이 부분은 9:15:00..
성명 주민번호 김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..
sumif 함수는 여러 시트에 걸쳐서 적용할 수는 없다는 내용의 글을 이전에 작성한 적이 있습니다.그런 종류의 질문이 올라오면 VBA를 이용하던지 데이터- 통합 기능을 이용하라는 답변을 달았습니다.그런데, 우연히 이런 답변을 발견했습니다. 역시 큰 형님의 작품입니다. 비슷한 예제를 만들어 첨부하였습니다. 해당 예제에서 수식 계산 기능을 이용해, 이 수식이 어떤 식으로 작동하는지 보려고 합니다. =SUMPRODUCT(SUMIF(INDIRECT(ROW(INDIRECT("1:3"))&"월분!$C$5:$C$12"),C4,INDIRECT(ROW(INDIRECT("1:3"))&"월분!$D$5:$D$12"))) 일단, 수식을 전체적으로 보면맨 바깥에 sumproduct함수가 감싸고 있고그 안에 sumif함수가 있습니..
지식인 질문 중 큰형님 답변 F:H 범위와 같이 주어진 표를 이용해노란색 셀에 들어갈 수식을 찾는 문제이다. 처음에는 If 구문을 세 번 쓰고그 안에서 match 함수를 이용해 찾는다고 생각을 했다. 오른쪽으료 표가 더 길어지만 VBA를 이용하고...... 그런데 큰형님의 답은=MAX(INDEX(($F$2:$H$6=B2)*$F$1:$H$1,)) 아주 간결하다.이 수식이 어떻게 동작하는지 알려면 엑셀에서 범위의 곱셈이 어떻게 동작하는지 알아야한다.엑셀의 범위는 수학에서 배우는 행렬과 유사하게 생겼지만 연산은 약간 다르다 일단 수학에서 말하는 행렬의 연산을 위키백과에서 알아보면 다음과 같다. 행렬 {\displaystyle A={\begin{bmatrix}a\\b\end{bmatrix}}}와 {\displa..
지식인 질문에 대한 답이다. 내가 한 답은 아니지만, 발상이 놀라와서 가져온다. 1부터 n까지의 숫자 합을 구하는 식은n∑ k 이렇게 표현이 된다 k=1 이것을 엑셀에서 수식으로 표현하는 방법이다. 정답은 =SUMPRODUCT(ROW(OFFSET(A1,,,A1,))) offset 함수의 성질을 이용했다.offset함수의 설명을 반복한다. offset 함수의 구문은 다음과 같다. OFFSET(reference, rows, cols, [height], [width])이 중, 뒤에 height와 width를 이용한 방법이다. 평소에 이 옵션을 빈칸으로 주면 offset함수는 reference위치에서 rows만큼 아래로, cols만큼 오른쪽으로 간 위치의 셀값을 보여준다. 하지만 height와 width를 표시..
지식인 답변에서 가져온 것이다 이런 데이터가 있을 때 중복된 숫자는 한 번으로 치고중복없이 아래와 같이 숫자를 나열하는 방법이다 수식은 다음과 같다. {=IFERROR(SMALL(IF($B$4:$E$6>F4,$B$4:$E$6),1),"")} 배열수식이므로 마지막에 Ctrl-Shift-Enter해야한다 대략 수식의 구조를 설명하면, $B$4:$E$6 는 A부분의 데이터이다. 중복된 값을 포함해 여러 숫자가 있는 범위이다F4는 비어있는 셀이다. 여기서 오른쪽이나 아래쪽으로 끌어채우기를 하면, 이전에 나온 값보다 더 큰 값의 범위를 지정해줄 수 있다. IF($B$4:$E$6>F4,$B$4:$E$6)$B$4:$E$6 중에서 F4(현재는 0)보다 크다면 해당 셀값을, 아니라면 False값을 배정한다. (IF 조건..
사용자 정의 폼은 아직 익숙하지 않다원래는 "어떤 시트에 있는 그림 중 랜덤으로 다른 시트에 불러오고 싶다"는 지식인 질문이 있어서 거기에 대한 답을 하려고했다.그림 자체만 불러오는 것은 쉽다 Set ws = Sheets("sheet2") For Each pic In ws.Pictures ReDim Preserve arr(1, i) arr(0, i) = pic.Name arr(1, i) = pic.TopLeftCell.Address i = i + 1 Next pic 이런 식으로 Sheet2에 있는 그림의 이름을 배열로 받은 다음, 배열의 인수를 랜덤으로 돌려서그 인수를 가진 배열에서 그림의 이름을 받아와서 시트에 불러오면 된다. (복사 - 붙여넣기) 그런데, 조건이 하나 있었던 것이 "이미지 틀"에 불러..