2014-09-02 2 views
0

Excel 수식에 익숙해도 VBA를 처음 사용합니다. 나는 내년 초에 떠날 예정인 임상 관리 업무에 종사하고 있으며, IT에 소질이 적은 동료들이 내가 만든 물건 중 일부를 계속 사용할 수있는 상태에두고 싶습니다.셀 값을 사용하여 선택할 열 수를 지정하십시오.

우리가 직면 한 주요 문제는 임상 소프트웨어에서 데이터를 추출 할 때 기본적으로 환자 ID, 이름, 주소, DOB 등을 뱉어내는 것입니다. 소프트웨어에 추가 세부 정보를 입력하도록 요청하는 경우, 다양한 질병으로 진단 한 날짜와 같이 환자의 왼쪽으로이 데이터를 새로운 열에 넣으므로 분명히 vlookup을 수행 할 수 없게됩니다. 내가 사용하는 현재 매크로는 기본적으로 내 보낸 데이터의 첫 번째 3 또는 4 열을 선택한 다음 스프레드 시트의 가장 오른쪽 부분에 잘라내어 붙여 넣은 다음 환자 ID를 별도의 테이블에 복사하여 vlookup이 해당 작업을 수행하고 채 웁니다. 탁자.

내가 찾고있는 것은 템플릿의 무언가를 만드는 방법입니다. 여기서 사용법은 드롭 다운 목록을 사용하는 "추가"열의 수를 지정할 수 있으므로 매크로 새로운 데이터 세트를 쉽게 조정할 수 있습니다. 나는 주위에 수색을 가지고 있었다. 그러나 나는 꽤 적당한 무엇이라도 발견 할 수 없었다.

Sheets("Exported Data").Select 
Columns("A:E").Select 
Selection.Cut 
ActiveWindow.ScrollColumn = 2 
Columns("N:N").Select 
Selection.Insert Shift:=xlToRight 
ActiveWindow.ScrollColumn = 1 
Columns("A:A").EntireColumn.AutoFit 
Range("A2").Select 
ActiveWorkbook.Worksheets("Exported Data").Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("Exported Data").Sort.SortFields.Add Key:=Range(_ 
    "A2:A1285"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ 
    xlSortNormal 
With ActiveWorkbook.Worksheets("Exported Data").Sort 
    .SetRange Range("A1:M1285") 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

답변

1

당신은 INDEX 및 MATCH 대신 VLOOKUP을 사용할 수

여기에 현재 데이터를 선택하고 이동 코드의 비트입니다. INDEX 및 MATCH를 사용하면 조회 열의 왼쪽으로 값을 되돌릴 수 있습니다.

ColA ColB Ref ColD ColE   
12  111  aaa 3000 4001    
13  122  bbb 3001 4002    
14  133  ccc 3002 4003    


=INDEX(A2:B4,MATCH(G1,C2:C4,0),2) 

수식은 Ref 열에서 "bbb"를 찾아 ColB에서 "122"를 되 찾습니다.

MATCH를 사용하여 행을 결정하고 INDEX를 사용하여 되돌릴 열을 결정합니다.

이렇게하면 절단 및 붙여 넣기의 모든 문제를 줄일 수 있습니다.

+0

감사합니다. 그래도이 수식을 사용하여 열을 자동으로 만드는 템플릿을 설정하는 방법을 알아야합니다. 내 역할은 IT와 관리자 업무로 나뉘어 있으므로 잠시 시간을내어 제대로 작업 할 수는 있지만 감사합니다. – NotoriousVBA

관련 문제