如何在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包含你想要的文字。