목록범위 (4)
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..
지식인 질문에 대한 답이다. 위의 표에서 사람이름 옆에 있는 날짜가 아래 표에서 각 사람 이름 아래에 있는 날짜 목록에 없으면 "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함수..
지난 번에 배웠던 것을 써먹은 사례이다. 위와 같이 A1:D1의 숫자 배열과 같은 배열을 아래 5행에서 찾아서, 그 바로 아래 행에 색깔을 칠하는 매크로이다. 포인트는 파란색 칠한 부분이다. Option Explicit Sub match_serial() Dim v As String Dim a As Range Dim wf As WorksheetFunction Set wf = WorksheetFunction v = Join(wf.Transpose(wf.Transpose(Range("a1:d1")))) For Each a In [a5:L5] If Join(wf.Transpose(wf.Transpose(a.Resize(, 4)))) = v Then a.Offset(1).Resize(, 4).Interior.Co..
'[제목줄 제외하고 아래끝까지 범위 재설정]With RngSet Rng = .Offset(1).Resize(.Rows.Count - 1, .Columns.Count)End With '[autofill 채우기]날짜.AutoFill Destination:=날짜.Resize(15), Type:=xlFillWeekdays, '평일날짜로만 채움' Type:=xlFillCopy '셀복사로 채움 '[한 셀 안의 문자열 중 일부만 첨자 및 색입히기]With Range("A1").Characters(4, 6).Font '4~6번째 문자.Superscript = True '위첨자.Subscript = False '아래첨자.Color = vbRedEnd With [범위중 두 번째 열 지정]Set r = sht.Range("..