我有一张excel表,其中有许多列,每列都有一个唯一的标题 这些列包含日期
我需要制作一份报告(如Pivot表),以获取指定日期的所有列标题
我试着在这里给出一个例子,但我不能在下面包含一个示例工作簿,我还添加了一个描述数据构建方式的屏幕截图
屏幕截图:
我需要的是一个类似于数据透视表的报告,例如,如果我选择了Month April.2019,那就是为了给我提供包含此值的所有列标题
我知道在原始数据中,如果我为每个日期创建一个新行,而只有一列我可以使数据透视表工作
我在问这个
是否有任何办法提前致谢
答案 0 :(得分:0)
如下所示,只要您在报告的A1中输入要搜索的日期,就会搜索“稳定性表”并将所有找到的列标题放在“工作表报告”的B列中:
Sub foo()
Dim ws As Worksheet: Set ws = Sheets("Stability")
Dim wsReport As Worksheet: Set wsReport = Sheets("Report")
'declare and set your worksheet, amend as required
icounter = 0
X = Format(wsReport.Cells(1, 1).Value, "dd.mmm.yyyy")
'above enter value to search for in Sheet Report A1
Set valuefound = ws.Range("AG3:BI5000").Find(What:=X, LookIn:=xlValues)
'above look for value X in column B
If Not valuefound Is Nothing Then 'if found then
foundaddress = valuefound.Address 'save the address of the first instance found
LastRow = wsReport.Cells(wsReport.Rows.Count, "B").End(xlUp).Row + 1
wsReport.Cells(LastRow, 2).Value = ws.Cells(2, valuefound.Column)
FoundAt = ws.Cells(2, valuefound.Column)
Do
Set valuefound = ws.Range("AG3:BI5000").FindNext(valuefound) 'find next value
LastRow = wsReport.Cells(wsReport.Rows.Count, "B").End(xlUp).Row + 1
wsReport.Cells(LastRow, 2).Value = ws.Cells(2, valuefound.Column)
Loop While Not valuefound Is Nothing And valuefound.Address <> foundaddress
End If
End Sub