基于包含发布名称和更改日期的字段,我需要确定在发布过程的哪个阶段发生了更改。
在下面的示例中,更改发生在一月分析阶段。我需要做几百遍。
系统会为您提供月份和日期。
您将看到月份,阶段和日期范围(开始和计算结束)。月和日期范围用于确定阶段。因此,对于1月10/10/17日是在1月10/9/17-11/5/2017年之间,这将使其进入分析阶段。
下面是指向如何确定舞台和设置电子表格的图像的链接。
Release Change Date
January 10/10/2017
Release Stage Start Calculation End
January Form Release 8/14/2017 9/10/2017
January Requirements Review 9/11/2017 10/8/2017
January Analysis 10/9/2017 11/5/2017
January Development 11/6/2017 12/10/2017
January Functional Test 12/11/2017 12/17/2017
January QA 12/18/2017 1/7/2018
January Live 1/7/2018 1/7/2018
February Form Release 9/11/2017 10/8/2017
February Requirements Review 10/9/2017 11/5/2017
February Analysis 11/6/2017 12/10/2017
February Development 12/11/2017 1/7/2018
February Functional Test 1/8/2018 1/14/2018
February QA 1/15/2018 2/11/2018
February Live 2/11/2018 2/11/2018
答案 0 :(得分:0)
您可以使用VBA宏遍历表中的行,并查找与条件匹配的行。下面是一些将要执行的VBA,您可以修改此代码以使用单元格引用作为输入,并根据需要使用搜索范围来代替ActiveSheet.UsedRange。
Sub getStage()
Dim release As String
release = "January"
Dim eventDate As Date
eventDate = "2017-10-10"
For Each Row In ActiveSheet.UsedRange.Rows
If (Row.Cells(1, 1) = release And Row.Cells(1, 3) <= eventDate And Row.Cells(1, 4) >= eventDate) Then
Debug.Print (Row.Cells(1, 2))
End If
Next
End Sub
答案 1 :(得分:0)
据我所知,这是相对简单的方法。
A2:D8
,“二月”对应于A9:D15
。INDIRECT
引用该命名范围,并使用INDEX
和MATCH
返回阶段。在MATCH
函数中,您将使用INDEX
和INDIRECT
来获取“ January”范围的第三列(开始),您将尝试在其中匹配日期。 match_type 参数(MATCH
的第3个参数)为1,表示它找到小于查询值 的最大值。这将为您提供行号。然后在最外面的INDEX公式中,列号为2(“阶段”列)。这是H2
中的公式:
=INDEX(INDIRECT(F2),MATCH(G2,INDEX(INDIRECT(F2),,3),1),2)