2015-06-25 49 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

请在执行此操作之前保存文件的副本,因为我没有对其进行测试。 –