2015-11-05 74 views
0

我想創建代碼,通過給他們一個名稱來將另一個列中的每個元素分組。例如:將我的元素在列中分組

Year: colour: 
2015  blue 
2014  red 
2003  yellow 
2011  blue 
2006  red 

如果年份是20152011給的顏色必須是「藍色」,如果年份是20142006顏色必須是「紅色」。

+0

我建議先在第二列開始一個循環...雖然沒有捕捉任何雙打......稍後你可以建立一張桌子,而每個標題都是唯一的(紅色,藍色......) –

+0

是的,我絕對會去爲它,我不用VB代碼,所以我可能可以精煉一個代碼,但創建一個全新的將是艱難的,我該如何開始? –

+0

'對於給定範圍的每個...'。併爲每個項目(除第一個)檢查它的目標數組... –

回答

0

假設罷了不會發生,我只是寫一個解決方案:

Sub test() 
    Dim c As Range, i As Long 
    Set c = Cells(1, 4) 
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 
    Do 
     If Len(c.Value) = 0 Then 
     c.Value = Cells(i, 2).Value: c.Offset(1).Value = Cells(i, 1).Value: Exit Do 
     ElseIf c.Value = Cells(i, 2).Value Then 
     Cells(Cells(Rows.Count, c.Column).End(xlUp).Row + 1, c.Column).Value = Cells(i, 1).Value: Exit Do 
     Else 
     Set c = c.Offset(, 1) 
     End If 
    Loop Until Len(c.Offset(, -1).Value) = 0 
    Set c = Cells(1, 4) 
    Next 
End Sub 

由於這個答案已經被調整到只有解決了這個問題,它需要調整任何不同......