需要与合并的标题列重复

需要与合并的标题列重复

我需要数据重复方面的紧急帮助。给定以下数据,我希望第一个序列重复两次。简而言之,我希望第二列和第三列与第一列合并。它并不重合。我需要一直手动完成吗?

需要帮忙!

bta-mir-225            bta-mir-225         ATCG

                       bta-mir-454         TGTCG

bta-mir-454            bta-mir-367        AAAGTA

bta-mir-367          

我想要的只是在下一行复制 225 的序列,使合并的匹配一致。即

bta-mir-225            bta-mir-225         ATCG

                       **bta-mir-225         ATCG**

bta-mir-454           bta-mir-454         TGTCG

bta-mir-367           bta-mir-367        AAAGTA

答案1

顺便说一句,这就是数据库的设计目的。我建议你改用它们。不过,你很幸运。Excel 中的一个简单的解决方案:

将第一列复制到新工作表。在该工作表上添加第二列,在单元格 B1 中输入以下公式:

=LOOKUP("dummy input",A$1:A1)

“虚拟输入”搜索是一种在源数据范围中查找下一个非空白单元格的方法。然后,在同一张表的 C1 中添加:

=VLOOKUP(B1,Sheet1!B:C,2,FALSE)

其中Sheet1!B:C指的是原始数据的第二列和第三列。

将它们拖至整个数据集中。

答案2

更新另一个答案证明我错了。如果我们理解了这个问题的意思,那么有一个相当简单的公式可以解决这个问题。


公式无法做到这一点。公式只能操作写入它的单元格的内容。在这里,一个单元格中的计算可能需要将其下方的所有单元格移动一格,这是行不通的。

如果需要自动化,则需要在 VBA 中编写宏来实现。这不是一个很难编写的宏,但即使是有此类编程经验的人也需要半个小时。如果您不是程序员,您可能需要几天的时间来学习它。

假设您从未编写过 VBA 程序:如果您有几百行数据,我建议您手动编写。如果数据超过一千行,如果您能找到会编写 VBA 程序的人,请让他们为您编写。或者,找一个擅长使用 Linq 的人,让他们在 Linqpad 中为您编写。如果您找不到这样的人,而且您是生物学家,而不是程序员,那么只有当您有数万行数据时才值得学习 VBA,否则手动编写会更繁琐,但可能花费更少的时间和精力。

另一种简单的方法是将数据放入数据库,即使是轻量级的 Access 数据库。然后执行您想要的操作(这是一个称为外部连接的单一操作,使用 Access,如果数据足够干净,您应该能够复制粘贴数据)并导出回 Excel。同样的成本/收益计算适用:如果您认识某个精通 SQL 的人,那么 1000 多行数据就值得去找他。如果您需要自己学习关系数据库建模,并且在学习计算机科学方面没有天赋,那么您需要花费数十个小时才能不仅了解要做什么,而且还能确保自己所做的是正确的。

相关内容