我正在尝试使用Excel或Access创建合并数据集,但运气不佳。我有两个Excel表,都包含我可以链接它们的ID。但是,TABLE1每个ID只有一行,TABLE2可以为每个ID包含多行。我想保留TABLE1中的所有条目,并添加TABLE2中的值,用逗号分隔多个。例如:
**TABLE1**
CNid start stop
0001 1 50
0002 60 100
0003 1 20
**TABLE2**
CNid gene
0001 abc
0001 ijk
0001 qrs
0003 abc
**TABLE3(Created)**
CNid start stop gene
0001 1 50 abc,ijk,qrs
0002 60 100
0003 1 20 abc
我熟悉Access中的合并查询,但无法弄清楚如何使得结果表每个CNid只有一行。
答案 0 :(得分:0)
虽然我使用的是Excel 2007,但我认为这可以在Excel 2003中使用,但我会根据具体情况将步骤分开:
从表2创建数据透视表,行标签为CNid
,列标签为gene
,Σ值为基因计数。
以布局为例,在L8中放置:
= IF(F8 = 1,F $ 7,“”)
并复制以适应,然后将L8复制到任何地方。
= L8&“,”& M8&“,”& N8&“,”& O8&“,”& P8
根据需要进行扩展并复制以适应。
复制ColumnI并将特殊值粘贴到ColumnJ中。
选择ColumnJ并替换为,,
。
在K8中:
= IF(右(J8,1)=“,”,左(J8)-1,J8)
并复制以适应。
将gene
标签添加到Table1,说这是在D12中。
将ColumnsE:K geneArray
命名为Workbook范围。
在D13中:
= IF(ISERROR(VLOOKUP(A13,geneArray,7,0)),“”,VLOOKUP(A13,geneArray,7,0))
并复制以适应。
将ColumnD和Paste Special Values复制到顶部。
删除不再需要的内容。