使用Excel或Access 2003组合Excel表

时间:2012-11-13 14:39:48

标签: excel excel-formula pivot-table ms-access-2003 excel-2003

我正在尝试使用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只有一行。

1 个答案:

答案 0 :(得分:0)

虽然我使用的是Excel 2007,但我认为这可以在Excel 2003中使用,但我会根据具体情况将步骤分开:

  1. 从表2创建数据透视表,行标签为CNid,列标签为gene,Σ值为基因计数。

  2. 以布局为例,在L8中放置:

      

    = IF(F8 = 1,F $ 7,“”)

  3. 并复制以适应,然后将L8复制到任何地方。

    SO13362680 example

    1. 在I8中放:
        

      = L8&“,”& M8&“,”& N8&“,”& O8&“,”& P8

    2. 根据需要进行扩展并复制以适应。

      1. 复制ColumnI并将特殊值粘贴到ColumnJ中。

      2. 选择ColumnJ并替换为,,

      3. 在K8中:

          

        = IF(右(J8,1)=“,”,左(J8)-1,J8)

      4. 并复制以适应。

        1. gene标签添加到Table1,说这是在D12中。

        2. 将ColumnsE:K geneArray命名为Workbook范围。

        3. 在D13中:

            

          = IF(ISERROR(VLOOKUP(A13,geneArray,7,0)),“”,VLOOKUP(A13,geneArray,7,0))

        4. 并复制以适应。

          1. 将ColumnD和Paste Special Values复制到顶部。

          2. 删除不再需要的内容。