我有一個目前看起來像這樣的列表:分離一個名單分成不同的列表擅長通過
我想寫的東西,自動分離基於類別列列表不同列表,即會造成這樣的:因爲有對每列多個值
VLOOKUP不起作用。我可以排序和提取,就像我爲上述圖片的目的一樣,但當然不會。
我試圖建立一個系統來「大腦轉儲」我需要做的一週的所有事情,並讓它按照類別自動組織。從那裏我打算按類別添加「優先級」列...
謝謝!
我有一個目前看起來像這樣的列表:分離一個名單分成不同的列表擅長通過
我想寫的東西,自動分離基於類別列列表不同列表,即會造成這樣的:因爲有對每列多個值
VLOOKUP不起作用。我可以排序和提取,就像我爲上述圖片的目的一樣,但當然不會。
我試圖建立一個系統來「大腦轉儲」我需要做的一週的所有事情,並讓它按照類別自動組織。從那裏我打算按類別添加「優先級」列...
謝謝!
我打算假設你想使用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是正確的,您應該自行出發以獲得一些基本級別的體驗。
可以使用數組公式,按要求更改類別信抄下:
=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鍵進行確認 + 輸入,而不是只是輸入
歡迎來到Stack Overflow。 SO不是我的服務代碼。請在原郵報中提供,而不是評論,你已經嘗試過。此外,無論您是在尋找公式答案還是vba答案。如果vba你需要提供你的代碼的任何嘗試。 –
如果這樣做達到了你的意圖,請標記一個正確的答案。 –