如何在Excel中创建逻辑功能?

时间:2016-12-26 22:02:40

标签: excel function sorting

我在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

我想将一个函数用于一个新列,该列能够找到每个A列单元格(for example for A1 cell is: "gi|948971612|gb|JQBK01000038.1|")的内容,其位于此B列大杂乱文本中,当找到此内容时,然后将文本从">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,那么欢迎任何其他建议!

2 个答案:

答案 0 :(得分:0)

假设您的“大文字”在B1中,

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

E1包含您想要的文字。

答案 1 :(得分:0)

所以你有2列优秀:A,B

你想把一些搜索到的B字符串放入C中,这符合你问题中描述的A栏相关的条件?

如果您了解一些VB语言,可以构建VBA宏来轻松完成 或者您只需将以下公式放在C列中。

=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中找到A,如果没有找到,只需简单地放入空字符串, 但如果找到,则将字符串从找到的位置剪切到第一次出现的">"。 希望这个公式解决你的问题。