0

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

4

1 回答 1

0

虽然我使用 Excel 2007,但我认为这将在 Excel 2003 中工作,但我会分开步骤以防万一:

  1. 从 Table2 中创建一个数据透视表,其中CNid包含行标签、gene列标签和 Σ 值的基因计数。

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

    =IF(F8=1,F$7,"")

并复制到适合,然后将L8复制到任何地方。

SO13362680 示例

  1. 在 I8 中:

    =L8&","&M8&","&N8&","&O8&","&P8

根据需要扩展并复制下来以适应。

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

  2. 选择 ColumnJ 并替换为空,,

  3. 在 K8 中:

    =IF(右(J8,1)=",",左(J8)-1,J8)

并复制下来以适应。

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

  2. geneArray使用 Workbook 范围 命名 ColumnsE:K 。

  3. 在 D13 中输入:

    =IF(ISERROR(VLOOKUP(A13,geneArray,7,0)),"",VLOOKUP(A13,geneArray,7,0))

并复制下来以适应。

  1. 复制 ColumnD 并将特殊值粘贴到顶部。

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

于 2013-08-21T00:01:44.997 回答