如何在Excel中创build一个逻辑函数?

我有一个Excel中的列,如下所示:

A1 cell: gi|948971612|gb|JQBK01000038.1| A2 cell: gi|948958729|gb|JQBK01000277.1| A3 cell: gi|948968182|gb|JQBK01000119.1| 

现在在B列里有一个非常大的文字,看起来像这样:

  >gi|948971612|gb|JQBK01000038.1| Lactobacillus acidipiscis strain DSM 15353 Scaffold295, whole genome shotgun sequence CAACCATTCCATCTGCAATGATCAACTGGACTTGTTCTAATCCACGTTTTTTAAGATCTTCTGCCATTTC TGACCAAACTCCTGCATTTTCACTTGGAGCGATTCGATAATCAAGAACTTCTTTGATGCCGACAGATGTA ATACCTAAAGCAATATAGACCGCTTCTCTTTGAACTGAATCGCGGCGCAAAGGTAAGTAAGTTG >gi|948957817|gb|JQBK01000039.1| Lactobacillus acidipiscis strain DSM 15353 Scaffold296, whole genome shotgun sequence ATCGGTCGAGGACTTAACCAACGAGTCGCGTGTGTGGGCTCGGTCAGATAAAAGCAGCAAGAAATGAATG TTAGTCAGTTTTGAGGGAATGGATCTCTCAAAGAAAAAAACACAAGTGCGGTGGCGATAGCACGAAGGCT ACACATGTTCCCATGCCGAACACAGCAGTTAAGCTTCGTCACGCCAAGAGTAGTTGGGGGAT >gi|948957803|gb|JQBK01000040.1| Lactobacillus acidipiscis strain DSM 15353 Scaffold297, whole genome shotgun sequence AAGCAAGGAGCTCAAGGAGCAAGTAAACAACTTTCACATTTAGGAAAGGGACTAATGGGCGTAATGGGCT CAATTATCCAGTCCGCCTATCAGATTCAACAACAAAACCGCTATATTGCAAAACGAAACGCCTATTATGC TCAACAGCAACAGCGCAGAAACCACCGCAGACAACAGGAAGATGAAATTGAACGTTAACGA 

我想使用一个新的列,将能够find每个A列单元格内容的function(for example for A1 cell is: "gi|948971612|gb|JQBK01000038.1|") ,其中位于这个B列大乱的文字,当它find这个内容的时候,就把这个文字从">gi|948971612|gb|JQBK01000038.1|" 直到下一个">gi"开始。 我的意思是在这个例子中复制新单元格的最终结果是这样的:

 ">gi|948971612|gb|JQBK01000038.1| Lactobacillus acidipiscis strain DSM 15353 Scaffold295, whole genome shotgun sequence CAACCATTCCATCTGCAATGATCAACTGGACTTGTTCTAATCCACGTTTTTTAAGATCTTCTGCCATTTC TGACCAAACTCCTGCATTTTCACTTGGAGCGATTCGATAATCAAGAACTTCTTTGATGCCGACAGATGTA ATACCTAAAGCAATATAGACCGCTTCTCTTTGAACTGAATCGCGGCGCAAAGGTAAGTAAGTTG" 

如果不能用Excel来完成,还有其他的build议更受欢迎!

所以你有两列擅长:A,B

而且你想把一些search到的B的子string放到C中,这符合你在问题中描述的与列A相关的条件?

如果您知道一些VB语言,您可以轻松地创buildVBAmacros,或者您可以在C列中input以下公式

 =IF(ISNUMBER(SEARCH(">"&A1, B1)),MID(B1,SEARCH(">"&A1, B1),IF(ISNUMBER(SEARCH(">", B1,SEARCH(">"&A1, B1)+1)),SEARCH(">", B1,SEARCH(">"&A1, B1)+1)-SEARCH(">"&A1, B1),LEN(B1)-SEARCH(">"&A1, B1))),"") 

所以这个公式从B中findA,如果没有find,只需简单地放入空string,但如果find了,则从find的位置切换到第一个出现的“>”。 希望这个公式解决你的问题。

假设你的“大文本”在B1中,

 in C1 enter: =FIND(A1,B1) in D1 enter: =FIND(">gi", B1, C1) in E1 enter: =MID(A1, C1, D1-C1) 

E1包含你想要的文字。