2015-06-25 102 views
0

對於這個問題,我想不出更具體的標題,對不起。如何根據條件將數據從列移動到行

我有一些數據是從大型數據庫中提取的,但是一列包含項目符號點,而且excel已將每個項目符號點放入列A中的新行。我想要一個公式從此獲取所有數據列並將其添加到相關行。

不是所有的條目都有列表,並不是所有的列表都有相同的長度,所以我需要找到一種告訴excel哪種入口鏈接哪一行的方法。

這是我與

Code   Name  Info  List 
A10   A10 name A10 info List Item 1 
List Item 2 
List Item 3  
A11   A11 name A11 info 
A12   A12 name A12 info List item 1 
List Item 2 
A13   A13 name A13 info List item 1 
List Item 2 
List Item 3 
List Item 4 
A14   A14 name A14 info 
A15   A15 name A15 info 
A16   A16 name A16 info 

etc.... 


I would like it to look like this 
Code   Name  Info  List   List 2  List 3  
A10   A10 name A10 info List Item 1 List Item 2 List Item 3 
A11   A11 name A11 info 
A12   A12 name A12 info List item 1 List Item 2 

處理的數據...等的例子.......

這可能嗎?

我已經嘗試了一些方法,但我有點新手。

+0

所以,我認爲「列表項1」是不是在該領域的實際數據?那麼,說A列(「代碼」)只能是「A10」,「A11」,「A ##」?我們如何知道每個列表項會是什麼? 「列表項目1」是否提及「A10」? – BruceWayne

+0

List Item元素或A10 ...元素是否有共同的特徵?或者是將這兩個組分開的一些特徵?請問A10 ......總是以a開頭,還是僅僅是一個佔位符名? – Vegard

+0

您嘗試了哪些方法?你在哪裏遇到問題?這是一次性問題,還是解決方案需要多次運行? –

回答

0

在E2:

=IF(LEN(INDIRECT(ADDRESS(ROW()+COLUMN()-4,2)))=0,INDIRECT(ADDRESS(ROW()+COLUMN()-4,1)),"") 

本質上,如果下方的行中的B列是空白的,抓住從A列(列表)值

填充此跨越行2中的右側(從列E到你需要的最右邊)。然後填寫。

完成後,複製/粘貼值以刪除公式,然後在列A上排序並刪除任何列表項行。

0

假設這是真的,你的願望每一行的A列寫「A#」 ......

dim i as integer 
'puts the list otems at the end of the previous row 
for i = 1 to Cells(Rows.Count, "A").End(xlUp).Row 
    if not range("A" & i) Like "A#" then 
     if range("E" & i - 1) = "" Then'I assumed only 3 possible bullets, but suit this to your liking. If there are many bullets put this in a loop. 
      range("E" & i - 1) = range("A" & i) 
     ElseIf range("E" & i - 1)(,2) = "" Then 
      range("E" & i - 1)(,2) = range("A" & i) 
     ElseIf range("E" & i - 1)(,3) = "" Then 
      range("E" & i - 1)(,3) = range("A" & i) 
      Rows("i").delete Shift:=xlUp 'deletes the line 
     end if 
next 
+0

請在執行此操作之前保存文件的副本,因爲我沒有對其進行測試。 –