2017-01-27 1 views
0

Ich habe eine Excel-Tabelle voller Zellen mit mehr als 13.000 verschiedenen Strings genetischen Codes (jeweils 100-300 Zeichen lang, komplett aus A zusammengesetzt) , G's, C's und T's). Jede Zelle sieht ungefähr so ​​Wie finde ich den Ort (zB die Zeichennummer) eines Teilstrings innerhalb einer Zeichenkette (MS Excel)

ACGC CCTTT GCGATATTTTAATGGCCGCGAAAATATGCGGGATGCAAGCGCCGTT

ich festgestellt, dass etwa 75% aller Strings enthält eine 5-Zeichen lange Sequenz von Interesse: "CCTTT". Innerhalb der ~ 10000 Zeichenfolgen, die mindestens eine Instanz der CCTTT-Teilzeichenfolge enthalten, möchte ich die Stelle kennen, an der die CCTTT-Teilzeichenfolge beginnt/endet. Gibt es eine Formel, die die Länge einer Zeichenfolge vor dem Anfang der CCTTT-Teilzeichenfolge zurückgibt? Daher würde die Anwendung dieser Formel auf die oben angegebene Beispielzelle den Wert 4 zurückgeben (es gibt vier Zeichen vor dem Beginn der CCTT-Teilzeichenfolge).

Vielen Dank.

Antwort

0

Verwenden Sie diese Formel, um die Länge vor "CCTTT" zu zählen: = FIND ("CCTTT", A1,1) -1. Verwenden Sie diese Formel für eine Zählung, wo es endet: = (FIND ("CCTTT", A1,1) -1) +5, die einfach die Länge des Snippets des gesuchten Codes addiert. Sollte sich diese Länge später ändern (das Snippet), können Sie die "+5" in "+ len (Snippet)" ändern.

Wenn mehr als ein Vorkommen des Teilstrings "CCTTT" innerhalb des Strings vorhanden ist, zählt diese Formel Zeichen vor dem zweiten: = FIND ("CCTTT", $ A1, FIND ("CCTTT", $ A1, 1) +5) -1. Der "Endpunkt" des zweiten: = (FIND ("CCTTT", $ A1, FIND ("CCTTT", $ A1,1) +5) -1) +5.

+0

@AKGreene: Ich würde vorschlagen, eine IFERROR-Funktion um die Formeln zu wickeln, um Fehlermeldungen zu vermeiden, wenn die Teilzeichenfolgen nicht gefunden werden: = IFERROR (FIND ("CCTTT", A1,1) -1, ""). –

Verwandte Themen