2017-05-11 21 views
0

我在Excel中有多张表,都有一个“名称”列。我想要一个包含所有这些组合的列表,而不需要重复。一个数据透视表不能从我的理解中做到,而当试用这个http://www.cpearson.com/EXCEL/TableToColumn.aspx时,我只能得到列A的结果:A。然而,这个例子表明,当我命名为D:D“ColumnData”和表“DataTable”(命名看起来似乎没有错误的时候,A:A,B:B,C:C应该在D:因为我得到了一些结果)。列到列的Excel

任何帮助?这是我使用和已经把D2的代码(只是换了逗号分号的地方我的Excel中):

=OFFSET(DataTable; 
MOD(ROW()-ROW([ColumnData]);ROWS(DataTable)); 
TRUNC((ROW()-ROW([ColumnData]))/ROWS(DataTable));1;1) 

附加信息:

首先我有枢轴表作列表中没有重复的名称(因为它们包含大量数据)。然后我为它命名(名称管理器),公式如下:

='Name lists'!$A$2:INDEX('Name lists'!$A:$A;MATCH("*";'Name lists'!$A:$A;-1);1) 

..然后调用“NamesSheet1”作为例子。

我然后填充答:在我的表:

=IFERROR(INDEX(NamesSheet1;MATCH(NamesSheet1;NamesSheet1;0));"") 

..和向下拖动该公式比有名称的更多行。然后我重复每一个新的列,B:B,C:C。

+0

这是一次吗?您可以将所有数据复制到一个新列中,然后使用该数据...删除该范围的重复选项吗? – xQbert

+0

不幸的是,我每个月向工作表多次输入新数据并添加新名称所有的时间,尽管所有的名字都没有因为他们代表不同的数据。然后我想在我的最终工作表中有一个数据验证列表,我只能选择一个名称中的任何一个名称,并使公式指向一个单元格(列表),orde可以一次显示所有工作表中的数据,名字匹配的地方。所以我只需要一个动态的方式来获取数据验证列表的所有名称,所以我只需输入原始数据,而不是一直手动创建新列表。 –

+0

http://stackoverflow.com/questions/29995903/how-to-merge-columns-from-different-sheets-without-duplicates可能是你在那之后 – xQbert

回答

0

将工作簿中的新选项卡重命名为Master。并运行下面的代码。它会将不同标签中的所有数据复制到主标签。让我知道如果这是需要的或任何其他所需的更改。

Sub ttest() 

Dim wb As ThisWorkbook 
Dim ws As Object 

For Each ws In ActiveWorkbook.Worksheets 
ws.Select 
ActiveSheet.UsedRange.Copy 
Worksheets("Master").Select 
i = Range("A65536").End(xlUp).Row 
Range("A" & i+1).Select 
ActiveSheet.Paste 
Next 


End Sub 
+0

是的,一个宏可以工作,我只需复制每个列表并粘贴到列表中的最后一个数据下,即可列出所有列表。我试图避免使用宏,并设置为让链接的示例工作如演示,我得到A:A + B:B + C:C在D:D,而我只能复制获得A:A在D:D中列出,代码与例子中的完全相同。 –

0

我从链接的例子与“ColumnDataR” - 选项去,然后从该塔制作枢轴表(如“ColumnDataR” -column没有删除重复它固定到我满意。然后,我根据新的数据透视表创建了一个新的名称列表(名称管理器),有一段很长的路要走,不过现在我只需要将我的原始数据输入到表格中,然后再刷新所有数据。