Excel formula 如何使用数字对应的行名称替换数字的值

Excel formula 如何使用数字对应的行名称替换数字的值,excel-formula,Excel Formula,我对使用Microsoft Excel及其公式函数非常陌生。我想用第二个CDS开始值替换所有CDS值的第一个CDS结束值。例如,根据下面给出的数据,我想将4663替换为57507411与9003等。完成这项任务的正确公式是什么 RefSeq region 1 283432 RefSeq gene 3662 4663 RefSeq mRNA 3662 4663 RefSeq exon 3662 4663 RefSeq CDS 3662 46

我对使用Microsoft Excel及其公式函数非常陌生。我想用第二个
CDS
开始值替换所有
CDS
值的第一个
CDS
结束值。例如,根据下面给出的数据,我想将
4663
替换为
5750
<代码>7411与
9003
等。完成这项任务的正确公式是什么

RefSeq  region  1   283432
RefSeq  gene    3662    4663
RefSeq  mRNA    3662    4663
RefSeq  exon    3662    4663
RefSeq  CDS 3662    4663
RefSeq  gene    5750    7411
RefSeq  mRNA    5750    7411
RefSeq  exon    5750    7411
RefSeq  CDS 5750    7411
RefSeq  gene    9003    11024
RefSeq  mRNA    9003    11024
RefSeq  exon    9003    11024
RefSeq  CDS 9003    11024
RefSeq  gene    12006   12566
RefSeq  mRNA    12006   12566
RefSeq  exon    12006   12566
RefSeq  CDS 12006   12566
RefSeq  gap 14027   14125
RefSeq  gene    15035   17032
RefSeq  mRNA    15035   17032
RefSeq  exon    15035   17032
RefSeq  CDS 15035   17032
RefSeq  gene    18188   18937
RefSeq  mRNA    18188   18937
RefSeq  exon    18188   18937
RefSeq  CDS 18188   18937
RefSeq  gene    20032   21774
RefSeq  mRNA    20032   21774
RefSeq  exon    20032   21774
RefSeq  CDS 20032   21774

假设您的数据在A、B、C和D列中,如下所示

您可以在cell
E2
中输入以下VLOOKUP函数并将其向下拖动:

=IF(B2="CDS",VLOOKUP(B2,B3:D30,2,0),D2)

然后,您可以使用复制和粘贴功能,用E列中替换的结果覆盖D列中的数字

逻辑是使用VLOOKUP从当前行下的全范围搜索
CDS
,并且VLOOKUP将始终返回第一个匹配项,该匹配项正是您要搜索的。如果查找值不是
CDS
,则使用IF函数从D列返回原始值

请注意最后一个值是一个错误,因为
21774
之后的
CDS
没有第二个值。如果您不想显示错误消息,请尝试应用IFERROR功能(您应该能够通过谷歌搜索技术诀窍,但如果需要帮助,请告诉我)


干杯:)

或者您可以使用
OFFSET()
MATCH()
的一些组合,这样单元格
[C9]
将具有公式

=OFFSET(D3,MATCH("CDS",B3:B8,0)-1,0)

您需要为
match()
函数提供一个“合理”的相对范围,以便只扫描当前CDS单元格上方的“几个”单元格。我选择看6个细胞。注意不要看太多的行,因为这样会找到多个CDS单元格!当您将函数复制到其他CDS单元格时,它将继续使用相同的相对引用

VLOOKUP()
不幸的是,需要按字母顺序对搜索列进行排序,这里的情况并非如此

结果将如下所示

RefSeq  region  1   283432
RefSeq  gene    3662    4663
RefSeq  mRNA    3662    4663
RefSeq  exon    3662    4663
RefSeq  CDS 3662    4663
RefSeq  gene    5750    7411
RefSeq  mRNA    5750    7411
RefSeq  exon    5750    7411
RefSeq  CDS 4663    7411
RefSeq  gene    9003    11024
RefSeq  mRNA    9003    11024
RefSeq  exon    9003    11024
RefSeq  CDS 7411    11024
RefSeq  gene    12006   12566
RefSeq  mRNA    12006   12566
RefSeq  exon    12006   12566
RefSeq  CDS 11024   12566
RefSeq  gap 14027   14125
RefSeq  gene    15035   17032
RefSeq  mRNA    15035   17032
RefSeq  exon    15035   17032
RefSeq  CDS 12566   17032
RefSeq  gene    18188   18937
RefSeq  mRNA    18188   18937
RefSeq  exon    18188   18937
RefSeq  CDS 17032   18937
RefSeq  gene    20032   21774
RefSeq  mRNA    20032   21774
RefSeq  exon    20032   21774
RefSeq  CDS 18937   21774