Anzeige
Archiv - Navigation
1264to1268
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Längste Zeichenkette aus A,C,G und T ermitteln

Längste Zeichenkette aus A,C,G und T ermitteln
TeiZei
Hallo,
habe folgendes Problem: ich möchte gerne aus einer Zelle die längste zusammenhängende Kette der Buchstaben A, C, G und T ermitteln - am liebsten per neuer Funktion falls möglich...
Bsp.: in der Zelle N11 steht folgender Inhalt:
"-------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------
TNNNNNNNCNNNNNNNNNNTNNNNNNNNNANNANNNNNNNNNNNNNNGNNNNNNNNNNNNNNNNNANGNNNNNANN
NNNNNNCATNTNGNNNNNGNNANNCNNNTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTNNTNNNNNNTNNNN
NNNNNNNCAGNNNNNGNNAGNNNCNNNNNNNNNNGNNNNGNNNNNNNNNNNNNNNNNNANNTNGNNNACNNNCNNN
NNTNNNNTNNNNNAANNNCANNNNNNNNNNNNTNNNNNNAANNTNNNNNNNNNNNNNNNNNNNNANNNTNNTNNAAN
NCGGNNNATNNNNNNNNNANNNNNNNNGNNNNNCGGNAANNNNNACNNNNNNNNNNNCNNNCANTNNNNNNNAGNN
NNNNNNTNTTNNNACAGACANTNNTATNNGNGCATGTGNNGNNNCNNNNNNNNNTNNNNNAGNTNNNNCAGTNNNNNN
NNNNNNGNNANNCNNGNNNCNNCNNNNNNNGNNNNNNNCAGNNACTANCANNNANNNNGGANTTNGGAAGNNNNCNN
CNNANNNNTACCGGAAANGNTNNNNCANNNNNNCNNNNNNNNCNNNNNNNNNGGNNNNNNNNCNNNGNNANCNNNN
NNNNNGNANGGGGGGGGGGGGNTNATCNCCACNNNNNTCTTACACAGTTTGGCTTTCAAAATCNNNANNCNCAACAATAG
ACCCTAGGGTAATTGCCAATTCNGCNTCTGNGAAAAAAAAGAAAAGAAAAACATGTNNNNNNNNNTANNNNTCATNGTTAT
CTCGAAATCCTTTTGCAAAGGGGTTATGATCTATTNTTAGNNGNGTAATNNGAAAANGNAGNAGAAAGAGAGANNGNGNCNT
CATCTTNTNCACAAGAAGGTGNGNGTTTGAGAATATATATATCATCNGCCATTNGGCAGGANCTNGGGTNTACNGAGTCACT
AAATAGCAAAGTTCTNTANCNNNANNNTNAGAGACTTNCAGGAAAGGAAAGCGATAAGGTATCNNNAANGTTANNANNNCC
AGNTNNNANCTAATNNNNCNNNNNNNCNNNNCNNNNNNNNNNNNCTTCNTTAATTAANNGNCNNGNCANGNGNCCNNN
NNGNCCNTCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"

Frage: wie kann ich den längsten Bereich finden - nur als Zahlenwert.
Danke,
TeiZei

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Längste Zeichenkette aus A,C,G und T ermitteln
29.05.2012 16:11:57
TeiZei
Hallo Christian,
danke für die schnelle Rückmeldung!!
Der Link ist wirklich gut - musste nur A, C, G und T je durch "!" ersetzen und dann die längste Kette von "!" suchen lassen.
Allerdings muss ich diese Berechunung für ca. 8000 Zellen machen - und die Liste rechnet und rechnet und rechnet...
Hast du auch eine Idee für eine schnellere Lösung?
Danke,
TeiZei
AW: Längste Zeichenkette aus A,C,G und T ermitteln
29.05.2012 17:59:04
ransi
Hallo
Mit etwas VBA geht da was richtig schnelles.
Schau es dir mal an:
Tabelle1

 AB
1GGCGGGAGATAACNTTTTCGCTCAGNNTGAAGAAACGAGNGNATACGCTCNTGTANCATAGGNAGCGCAGNANNTCNGGCACTACTNTCCNNATCNATCCGCNGNGNATACNTGNTNAGAATGGATAAGCNTCTCTNGANGAGNTTTGNCAGANNTGNGCATGCTACACTNNNNGGGGCTCGNCTTNGCGAACNAAGGACCNAACNTGGNGAANCCATNAATGACCNGGCNNGNCGAANGATANAAANANNCNACGTNCATNTGCCAAGACNNGTNCNTTTACCNNCCTTNNNGNCAACNCACANCNGCNNAGNNATANTAAGCCCGCCAGAGANTAGCGGGCNNCCTCAACNATCGTTTCTCTNNAGCGTNGGNCCNCAGCATNGAGCNTAGAGGGCCTCGTNATTAAGCGCACGANGCACGNCNGNCTGACGTGGAAGTNATTCGNACGTCNCNANAGNGNNNCNGGNAGGNCNTTNNCCTTACGTCNATCNNNCTGATAAGCCCGCCAGAGA
2NAAAAAAAAGGNNAGAGANANNCTCCATGGCNGTGNGNCNANATGTGTGTCCTGGGGCNCCCACTNCNGAATCGTNTGNGNNGNGNCAGNTAGCTNCNTTTAGAACTTNCGATCNTGTAGCGNCGCTCACTTCNGTNNTNTANTNNTNAGNTTGCGGNTNCAGGNCCGNCGTCCTCCATCNCNNTAGACATCGTGTTNGNNNTNAAGNTCCAATAAAGCNNGNNNCCTCTGNTANATNATCTTAGNAANNNGNNAGCATNACAAGANGGTAGTGNTNAGAANTANCACGTCCCTNNNNANGCAGANAGCGNCCCGCNCGCTATNGGTCNCGTTCTGAGGNTTACTNNNTTNCCGTGNGNCTAGGATTNTGCTGGTTATGACCATTGTTAGGTTNNNCCNGNNGAGTGNCAAGGNGCGCTNGCNNANAAGGGCTACNTATCGCCNGANANANTGTNTNCAACGGGTTAGTCGACGGGTNNCCATGGGNATGCANNGNAGTGTGCTGGTTATGACCATTGTTAGGTT
3GCAAAGACNCATNGGTATTAGANCCGCNCAATCNNNANCGACTTAANANGCNANTGCAAGTAANCNCATGCTATAGTACGACCTTCGTGNATGGNCACANNTATANAACNNCATCGGNAAGCNTGTGCTTGCTGTATTCAAGAAGTNGAATTTCCCCAATNAGGTCTACAAANCTGCNATTTTNTTTTCTNNNANAACNGCTTNTTANCCANNCNATCAANANGCTNGNATTNGCCCNCNTGNGNCNNNTNAGCGNCGTGTTNAGNTTGATAACAAGTGNCNTNTNTTCCGGGGATNNGNCTANTGCAGNNGTGGTGNGCTNANATAGAGGANNANNNNCNACCNGGGNGCGAAACTTCCTACATNGGCGANTTNTAGNAGCCTNTGTAGTTAGCANCGGCGATTANGTCNNGGGCCGGTATGATNTAGACCNCNATCCACTCGTCANTANTTGTANTTCATACACNTTTCAAGTCANCCTGTGTANAATACTAAANGTNTGTGCTTGCTGTATTCAAGAAGT

Formeln der Tabelle
ZelleFormel
B1=machs(A1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Dazu diesen Code in ein Modul:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Dim Regex As Object
Const myPattern As String = "[ACGT]+"

Public Function machs(stext As String) As String
    Dim objMatches As Object
    Dim objMatch As Object
    Dim lngL As Long
    lngL = 0
    If Regex Is Nothing Then
        Set Regex = CreateObject("VbScript.Regexp")
    End If
    With Regex
        .Pattern = "[ACGT]+"
        .Global = True
        If .TEST(stext) = True Then
            Set objMatches = .Execute(stext)
            For Each objMatch In objMatches
                If objMatch.Length >= lngL Then
                    lngL = objMatch.Length
                    machs = objMatch.Value
                    'MsgBox "Treffer"
                End If
            Next
        End If
    End With
End Function


ransi
Anzeige
AW: Längste Zeichenkette aus A,C,G und T ermitteln
30.05.2012 08:40:56
TeiZei
Hi ransi,
die VBA-Lösung ist deutlich schneller - echt klasse!
1000snd Dank an Dich und Christian für eure Zeit und eure Unterstützung!!!
TeiZei
AW: Frage zu Regexp
30.05.2012 08:47:29
hary
Hallo Ransi
Dein Code ist fuer mich schoen zum ueben. Hab im Archiv gesucht, aber nichts passendes gefunden.
Aufbauend auf deinen Code zaehle ich die A im String mit: With Regex .Pattern = ("[A]+") 'gesucht Buchstabe A 'usw. Cells(1, 4) = lngL & "x" & "A" 'gibt mir die hoechste Anzahl Reihe A raus
Nu moechte ich fuer eine Schleife das A in Pattern ersetzen durch eine Variable. Geht das?

B = "A"
With Regex
.Pattern = ("[A]+") ' statt A soll die Variable B rein
Moechte z.B. die Anzahl A und anschliessend die Anzahl G
gruss hary
Anzeige
erledigt, geht so...
30.05.2012 09:14:13
hary
Hallo
Durch rumprobieren rausbekommen.

.Pattern = ("" + B + "+")

gruss hary

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige