我不知道如何继续解决这个问题。
我的Excel表格看起来像附加的图像。我想要做的是在另一张表中列出附有评论的所有评论。
我想要做的是在工作表(报告)中,我想显示一个列表,其中包含在第42周与团队A相关的所有好/坏分数,其中已做出评论。 因此,在此示例中,列表将与第2行和第4行合并。
源列表包含超过100k行,因此我的第一次尝试是使用offset限制公式,以仅查看指定周中的行。但也许vba代码是一种更快捷的方法吗?
答案 0 :(得分:0)
试试这段代码:
Sub Test()
Dim row As Integer, lastrow As Long, rng As Range
'This filters the data and copies the result to a second worksheet - Sheet2 (rename to suit)
With Sheet1
On Error Resume Next
.ShowAllData
On Error GoTo 0
lastrow = .Cells(Rows.Count, 1).End(xlUp).row
.Range("A1:D" & lastrow).AutoFilter field:=1, Criteria1:="a"
.Range("A1:D" & lastrow).AutoFilter field:=2, Criteria1:="42"
.Range("A1:D" & lastrow).AutoFilter field:=4, Criteria1:="<>"
Set rng = .Range("A1:D" & .Cells(Rows.Count, 1).End(xlUp).row).SpecialCells(xlCellTypeVisible)
If rng.Cells(Rows.Count, 1).End(xlUp).row > 1 Then ' If Not just header row visible i.e your filter has some actual results
Set rng = .Range("A2:D" & lastrow).SpecialCells(xlCellTypeVisible) 'A2 to exclude header
rng.Copy Destination:=Sheet2.Range("A" & Sheet2.Cells(Rows.Count, 1).End(xlUp).row + 1) 'Copy to next available row in sheet 2
End If
End With
End Sub
答案 1 :(得分:0)
我终于找到了能够做我想做的功能。
此代码显示第7列中的数据。通过更改公式末尾的7,我可以选择显示我想要的列,然后只需将公式一直复制到我需要的位置。
如果有人使用此代码,请不要忘记它是一个数组,在将其放入Excel而不是按Enter后,您必须按ctrl + shift + enter。
`=IFERROR(INDEX('Raw ticket'!$1:$1048576;
SMALL(
IF((44='Raw ticket'!M:M)*(1='Raw ticket'!H:H)*("a"='Raw ticket'!C:C)*(ISTEXT('Raw ticket'!G:G)); ROW('Raw ticket'!A:A)-ROW('Raw ticket'!$A$2)+2); ROW(1:1));7);"")`