목록함수 (106)
rand(life)
지식인 질문에 대한 답이다. 위의 표에서 사람이름 옆에 있는 날짜가 아래 표에서 각 사람 이름 아래에 있는 날짜 목록에 없으면 "O", 있으면 "X"를 표시하는 방법이다. 처음에는 다음과 같이 했다. =IF(COUNTIF(OFFSET($H$1,0,MATCH(B2,$A$8:$C$8,0),100,1),A2),"X","O") offset 함수의 구문은 다음과 같다. OFFSET(reference, rows, cols, [height], [width])이 중, 뒤에 height와 width를 이용한 방법이다. 평소에 이 옵션을 빈칸으로 주면 offset함수는 reference위치에서 rows만큼 아래로, cols만큼 오른쪽으로 간 위치의 셀값을 보여준다. 하지만 height와 width를 표시한 offset함수..
위의 그림처럼 D2셀에 사진의 이름을 주면, 그 이름과 같은 이름의 사진을 D5셀에 나타나도록 하는 방법이다.별도의 시트에 위와 같이 사진 이름과 사진을 매칭시켜 정리해두어야한다. 그 다음, 사진 하나를 아무거나 복사한다. (Ctrl-C)이제 사진이 나타나야하는 셀을 선택하고 그림으로 붙여넣기를 한다. "붙여넣기"에서 역삼각형을 클릭하면 나타나는 메뉴에서 "그림"을 선택하면 된다. 이제 그림을 셀의 크기에 맞게 적당히 조정해준다. 수식 - 이름관리자로 가서 이름정의를 해준다.상황에 따라 다르겠지만, 첨부화일의 경우에는 "사진위치"는 =INDEX(사진범위,MATCH(Sheet2!$D$2,사진이름,0),1)"사진범위"는 =데이타!$C$2:$C$4"사진이름"은 =데이타!$B$2:$B$4 이렇게 설정되어있다.이..
A열과 같이 같은 문자열이 반복되어 나오고 있을때, 가장 많이 나오는 문자열이 무엇인지, 또는 두 번째로 많이 나오는 문자열이 무엇인지를 알 수 있는 함수입니다.=INDEX(A1:A6,MATCH(LARGE(FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)),C1),FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)),0))배열함수이므로, Ctrl-Shift-Enter해야합니다. 길어서 복잡해보이지만, FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)) 이 부분이 반복되어서 그런것입니다. 이 부분이 하는 역할은, A열의 각 문자열이 나오는 횟수를 배열로 만드는 것입니다. MATCH..
now 현재의 날짜와 시간 (ex: 2017-07-16 오후 3:17:23)date 현재의 날짜만 (ex: 2017-07-16) time 현재의 시간만 (ex: 오후 3:17:59 )weekday(날짜, 옵션) 요일 옵션: 주의 첫요일 설정한다. 상수: 1 일요일, 2 월요일 3, 화요일... 결과값: 1~7의 숫자로 나옴예를 들어, weekday(date, vbmonday) 라고하면 오늘 날짜가 무슨 요일인지를 월요일을 1로 해서 숫자로 알려준다. 이 글을 쓰는 날은 일요일ㅇ이므로, 7이 나온다.만약, weekday(date, vbsunday)라고 했다면 1이 나온다. DatePart (옵션, 날짜/시간): 날짜.시간에서 필요한 부분 추출 옵션: yyyy 년도, q 분기, m 달, y 년 중 몇번째 날..
이전 글과 비슷한 기법인데, 조건이 하나 더 추가되었습니다. 위와 같이 날짜 옆에 텍스트가 있고, 특정 날짜에 해당하는 텍스트가 "중복없이" 몇개가 있는지 구하는 문제입니다.이전글에서 날짜라는 조건을 주지 않고, 일정 범위 내의 텍스트 개수를 중복없이 구하는 수식은 다음과 같았습니다.=SUMPRODUCT((A1:D2"")/(1-(A1:D2"")+COUNTIF(A1:D2,A1:D2))) 이번에는 "주어진 날짜와 같은 날짜"라는 조건이 추가로 주어졌습니다.위의 그림은 1월1일에 해당하는 텍스트의 개수를 중복없이 구하는 수식을 보여줍니다. (하나의 값만 구하므로 절대주소표시는 하지 않았습니다만, D열에 여러 날짜를 준다면 D2를 제외한 나머지 셀주소는 모두 절대주소로 표시해야합니다) 수식을 쓰면 다음과 같습니..
오늘은 오랜만에 배열수식 아래와 같은 표에서 가장 최근에 출고한 날짜를 찾는 함수이다주의할 것은 날짜가 정렬이 되어있지 않다는 것. 날짜 입고 출고 재고 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..
지식인에서 들어온 질문.리스트상의 단어가 데이터상의 단어를 포함한 긴 단어에 있을 경우 해당하는 모든 중복되는 데이터에 대해 Listed 밑에 리스상의 단어로 하나만 표기하면 됩니다. 가령 APPLE 이 리스트 단어이면 DATA상에 APPLE_1/APPPL_2가 있으면 그냥 APPLE 만 표기하도록 매크로를 작성해주세요.List에 없는 단어 중 Name에 있으면 Non-listed에 표시해주세요여기서는 안보이지만, Apple, Melon, Strawberry, Pear 등으로 이루어진 List목록이 따로 있다Potato는 List목록에는 없는데 Name에는 있기때문에 Non-listed에 표시된다. 사실 앞의 문제는 해결이 쉽다. .Find 메서드를 이용하면 된다.시트에서 Ctrl-F 를 누른 것과 같은..
'지식인에서 엑셀 관련 질문에 답변을 해주다가 VBA공부를 시작했다. 다음은 어느 분이 '연도-월'의 이름을 가진 시트가 많이 있는 파일에서, 연도별로 시트를 저장하고, 올해 1월과 작년 12월, 그리고 연도가 아닌 글자로 시트명이 된 시트들을 따로 모아 저장해달라는 의뢰(?)에 대한 연구 결과이다파일로 다운로드Option Explicit '변수를 선언해야 사용할 수 있다는 옵션Sub MergeWBs() '매크로 이름Dim i As Integer '순환문 작업에 필요한 변수Dim shtnum As Integer '시트의 총갯수를 저장하기위한 변수Dim sh As Worksheet '선택한 시트를 복사할 때 시트 각각에 배당하는 변수Dim shs As Sheets '선택한 시트 전체에 배당하는 변수Dim ..