我在Excel中使用2个电子表格,如下所示:
表1:'摘要'
| - | --- A ----- | ------ B ----- | - C-- | - D - | - E-- | - F-- | - G- |
| 1 | __ ID___ |开始日期| FEB | MAR | APR |五月| JUN || 2 | Y01A01 | _ __ _ __ _ __ _ | _1_ | _ 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))))
但它显示1/2/2013错误,而非2013年3月2日。
答案 0 :(得分:0)
如果您尝试获取每个ID的相应开始日期(从表2到表1),您可以使用=VLOOKUP($A2,FEB!$A$2:$B$65536,2,0)
答案 1 :(得分: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