12월, 2016의 게시물 표시

INDEX 함수에서 몰랐던 기능

이미지
"범위&범위"라고 주면 범위끼리 문자열을 합하여 배열을 만든다 예를 들어, 이런 형태의 데이터를  이렇게 정리하기 위해 수식을 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$14,) A$3:$A$13와 $A$4:$A$14의 문자열을 합친 배열 중에서 찾고  김태희서울,장동건수원,유지태인천,아유미일본,유승호부산,유리서울  0  비슷한 글자가 아니라 정확히 일치하는 글자를 찾아라 이 중에서  INDEX($A$3:$A$13&$A$4:$A$14,) 여기를 잘 보면 맨 뒤에 콤마만 있고 그 뒤가 없다 바로 INDEX 함수의 설명 중 다음 사항에 해당한다. 주의 reference와 area_num으로 특정 범위가 선택된 후에는 row_num과 column_num이 특정 셀을 선택합니다. 즉, row_num 1은 범위의 첫째 행이고, column_num 1은 첫째 열의 방식으로 선택됩니다. INDEX 함수로 반환되는 참조는 row_num과 column_num이 교차되는 위치입니다. row_num이나 column_num을 0으로 설정하면 전체 열이나 행에 대한 참조가 각각 반환됩니다. 즉, INDEX함수는 주로 첫번째

한 폴더 안의 모든 파일에서 특정 시트 복사해오는 vba

네이버 지식인에서    큰형(ks_1862)님의 답변 중 참고하였습니다. D:\TEMP 라는 폴더 안에 있는 모든 XLSX 확장자를 가진 엑셀파일에서 "통계"라는 이름을 가진 시트를 복사해옵니다. Option Explicit Sub MergeWBs() Dim wbDst As Workbook Dim wbSrc As Workbook Dim wsSrc As Worksheet Dim MyPath As String Dim strFilename As String Application.DisplayAlerts = False Application.EnableEvents = False Application.ScreenUpdating = False MyPath = "D:\temp" Set wbDst = ThisWorkbook strFilename = Dir(MyPath & "\*.xlsx", vbNormal) If Len(strFilename) = 0 Then Exit Sub Do Until strFilename = "" Set wbSrc = Workbooks.Open(Filename:=MyPath & "\" & strFilename) Set wsSrc = wbSrc.Worksheets("통계") wsSrc.Copy after:=wbDst.Worksheets(wbDst.Worksheets.Count) wbSrc.Close False strFilename = Dir() Loop wbDst.Worksheets(1).Delete Application.DisplayAlerts = True Application.EnableEvents = True Application.ScreenUpdating = True End Sub 2017.2.16 몇가지 기능을 추가한 버전입니다 1. '통계&