2016-05-10 33 views
0
類別

我有一個目前看起來像這樣的列表:分離一個名單分成不同的列表擅長通過

enter image description here

我想寫的東西,自動分離基於類別列列表不同列表,即會造成這樣的:因爲有對每列多個值

enter image description here

VLOOKUP不起作用。我可以排序和提取,就像我爲上述圖片的目的一樣,但當然不會。

我試圖建立一個系統來「大腦轉儲」我需要做的一週的所有事情,並讓它按照類別自動組織。從那裏我打算按類別添加「優先級」列...

謝謝!

+1

歡迎來到Stack Overflow。 SO不是我的服務代碼。請在原郵報中提供,而不是評論,你已經嘗試過。此外,無論您是在尋找公式答案還是vba答案。如果vba你需要提供你的代碼的任何嘗試。 –

+0

如果這樣做達到了你的意圖,請標記一個正確的答案。 –

回答

0

我打算假設你想使用VBA宏。這其實很簡單。本質上,我們將爲每個類別設置一個目標列。對於變量類別可以動態地做到這一點,但我會假設它們對你而言是不變的。我們遍歷第一個列表中的每個項目,並將其值複製到正確的目標列,同時使用End(xlUp)查找最後填充的數據行並添加一個以獲取目標行。

Sub sortDescrip() 
Dim destCol1, destCol2 As String 

For Row = 2 To Range("A" & Rows.Count).End(xlUp).Row 
    Select Case Range("A" & Row).Value 
     Case "A" 
      destCol1 = "E" 
      destCol2 = "F" 
     Case "B" 
      destCol1 = "H" 
      destCol2 = "I" 
     Case "C" 
      destCol1 = "K" 
      destCol2 = "L" 
     Case "D" 
      destCol1 = "N" 
      destCol2 = "O" 
     Case Else 
      destCol1 = "Q" 
      destCol2 = "R" 
    End Select 
    lastRow = Range(destCol1 & Rows.Count).End(xlUp).Row + 1 
    Range(destCol1 & lastRow).Value = Range("A" & Row).Value 
    Range(destCol2 & lastRow).Value = Range("B" & Row).Value 
Next 
End Sub 

我假設你對VBA程序很少有經驗,這應該讓你開始思考它們。 Excel自身功能強大,但它不會讓您設置VBA所處的非選定單元的值。儘管我很樂意提供一些介紹代碼,但@ScottCraner是正確的,您應該自行出發以獲得一些基本級別的體驗。

0

可以使用數組公式,按要求更改類別信抄下:

=IF(ISERROR(INDEX($A$1:$B$15,SMALL(IF($A$1:$A$15="A",ROW($A$1:$A$15)),ROW(1:1)),2)),"",INDEX($A$1:$B$15,SMALL(IF($A$1:$A$15="A",ROW($A$1:$A$15)),ROW(1:1)),2)) 

注意數組公式必須與按Ctrl + Shift鍵進行確認 + 輸入,而不是只是輸入