2013-11-27 1 views
0

나는이 스프레드 시트 엑셀하고 있어요 당 번호가 포함 디스플레이 첫 번째 셀의 해당 날짜 다음같은 사람

시트 1 : '요약'

| - | --- A ----- | ------ B ----- | - C-- | - D - | - E-- | - F-- | - G- |
| 1 | __ ID___ | 시작 날짜 | FEB | MAR | APR | 5 월 | JUN |

| 2 | Y01A01 | _ __ _ __ _ __ _ | _1_ | _ _ _ | _ 1_ | _ 1__ | 1_ |
| 3 | Y01A02 | _ __ _ __ _ ___ | _0_ | _ 0__ | _ 0__ | _ 1__ | 1 |

| 4 | Y01A03 | _ __ _ __ _ ___ | _ 1_ | _ 1_ | _ 1_ | __ 1_ | _ 0 |

시트 2 : '2월'

| - | ---- A - | ---- B ----- | - C - | - D - | ----- E -------- |
| 1 | ID_ _ __ | 날짜 ____ | 발열 | 기침 | 러닝 코 |

| 2 | Y01A01 | 1/2/2013 | NA __ | NA_ _ | NA _ __ _ ___ |

| 3 | Y01A01 | 2/2/2013 | NA__ | NA __ | NA _ __ _ ___ |

| 4 | Y01A01 | 3/2/2013 | 0 _ __ | _ 1 __ | _ 1_ _ __ _ ____ |

시트 1은 독감 예방 프로그램에 참여한 모든 사람들의 요약표입니다. 그들은 매월 독감 증상을 매일 기록해야합니다. C : G 열 (2 월에서 6 월)에서 '1'은 사용자가 '예'를 나타내고 '0'은 아니요를 나타냅니다. 그러나 모든 사람이 프로그램에 참여하지는 않으며 한 달 초에 녹음을 시작하지 않습니다.예를 들어 시트 2에서 참가자 Y01A01은 2013 년 3 월 2 일에 시작되었으므로 2013 년 1 월 20 일과 2013 년 2 월 2 일에 기록 (즉, NA)이 표시되지 않았습니다. (시트 2, 0 = 아니오, 1 = 예)

제 질문은 Excel 공식을 사용하는 모든 사람에 대해 시작 날짜 (시트 1, 열 B)를 찾고 싶습니다.

나는 공식

=INDEX('Feb'!B:B,MATCH(Summary!A2,'Feb'!A:A,0),ISNUMBER(INDEX('Feb'!C:C,MATCH(Summary!A2,'Feb'!A:A,0)))) 

를 사용하려고 노력하지만 대신 2013년 3월 2일의 잘못 2013년 1월 2일 보여줍니다. 각 ID에 해당하는 시작 날짜를 얻을 묶는 경우

+0

VLOOKUP() 공식을 사용하십시오. –

+0

VBA 사용을 고려합니까? – lowak

+0

어떻게 알 수 있습니까? – user3040635

답변

0

를 사용할 수 있습니까? 당신이 코멘트를 기쁘게하지 않으면 나는 당신을 안내 할 것입니다.

Sub first_date() 

Dim MyRange As Range 
Dim MyRange1 As Range 


Worksheets("Summary").Select 

Set MyRange = Worksheets("Summary").Range([a2], [a2].End(xlDown)).Rows.SpecialCells(xlCellTypeVisible) 

Worksheets("Feb").Select 

Set MyRange1 = Worksheets("Feb").Range([a2], [a2].End(xlDown)).Rows.SpecialCells(xlCellTypeVisible) 

Worksheets("Summary").Select 

For Each MyCell In MyRange.Cells 
    With MyRange1 
    Set rng1 = .Cells.Find(MyCell.Value) 
     If Not rng1 Is Nothing Then 

      Do 

       If IsNumeric(rng1.Offset(0, 2).Value) Then 

       MyCell.Offset(0, 1).Value = rng1.Offset(0, 1) 

       Exit Do: 

       End If 

      Set rng1 = .Cells.FindNext(rng1) 

      Loop While rng1.Address <> strAddress 

     End If 

    End With 

Next 

End Sub 
+0

행복하게 작동했습니다;) – lowak

0

(시트 1 시트 2에서) 당신은 당신이 매크로를 처리하는 방법을 알고 희망 =VLOOKUP($A2,FEB!$A$2:$B$65536,2,0)

+0

그러나 ID가 처음 나타나는 날짜를 찾는 것뿐만 아니라 첫 번째 0 또는 1이 시트 2 'C2 : E4'또는 단순히 'C'열에 표시됩니다 – user3040635

관련 문제