2016-11-10 66 views
0

我被困在如何推進這個問題。顯示匹配多個語句的值

我有一張看起來像附加圖像的Excel工作表。我想要做的是在另一張表格中顯示附有評論的所有評論。

我想要做的是在圖表(報告)中,我想顯示一個列表,其中包含所有在第42周進行評論的與團隊A相關的好/壞分數。 因此,在這個例子中,列表是行2和4

enter image description here

信號源列表包含超過10萬行的concisting所以我第一次嘗試是限制公式與偏移只在看指定周內的行。但是,也許vba代碼是一個更好的方法來做到這一點?

+0

沒有*好*的方式來做到這一點。我只想使用過濾器來訪問你需要的數據表明 - 否則這是一個相當可觀的VBA項目 – CallumDA

+0

爲了增加CallumDA33的建議,爲什麼不將數據轉換爲表和篩選器將被自動添加,以及格式。 – SJR

回答

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 
+0

謝謝,我應該說我不能在本報告中使用過濾器。原始數據用於多個工作表,因此嘗試過濾數據會觸發重新計算以殺死計算機。 –

+0

好的,不好使用不同的方法,稍後發佈 – Nick

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);"")`