Clever-Excel-Forum

Normale Version: Text in Zelle finden und Inhalt einer anderen Zelle wiedergeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Excel-Experten/Innen, 

ich stoße leider an meine Grenzen mit meinen rudimentären Excelkenntnissen. Ich hoffe daher sehr, dass ihr mir helfen könnt. Aus einer Datenbank  (Childes-Corpus) habe ich eine lange Liste an Informationen, die ich nun anders aufbereiten möchte. 

Es soll eine Liste entstehen, mit folgenden Spalten in der Überschriftzeile (L1-P1) 
*CHI:  %mor:  From file. ***File. Strings matched
D.h., wenn in A5 „*CHI:“ gefunden wird, dann soll in die Liste in der Spalte unter *CHI: der Inhalt von B5 („all gone.“) stehen. Genauso auch bei %mor die Information, die in der Spalte daneben steht.. Bei from file, ***file, und strings match soll einfach der Text direkt übernommen werden.. 

Was noch zu beachten wäre: Wenn bei strings matched mehr als 1 steht, dann gibt es eine file, in der mehrmals ein Treffer (=strings matched) gefunden wurde. Also nicht jeder *CHI:-Eintag hat einen eigenen „From file“ Eintrag, sondern unter das letztere könnten mehrere fallen. 

Bei der ***File Spalte würde es reichen, wenn hier nur die tatsächliche Nummer steht: also „3962“ anstatt „ *** File "c:\USERS\USER\DOWNLOADS\THOMAS\THOMAS\020013.cha": line 3962“

Ich danke euch schon vorab für euer Schwarmwissen und freue mich auf eure Lösungsvorschläge.

Viele Grüße

Seepferdchen63
Hallo,

ein Vorschlag:

Code:
sub F_en
rr = 1
for i = 1 to cells(rows.count, 1).end(xlup).row
    if left(cells(i,1), 5) = "-----" then rr = rr + 1
    if cells(i,1) = "*CHI:" then cells(rr, "L") = cells(i,2)
    if cells(i,1) = "%mor:" then cells(rr, "M") = cells(i,2)
    if left(cells(i, 1), 8) = "*** File" then cells(rr, "O") = mid(cells(i,1), 9)
    if instr(1, cells(i,1), "Strings matched") > 0 then cells(rr, "P") = mid(cells(i,1),19)
next i
end sub

Unter LibreOffice ist der Code nicht gelaufen, ich vermute aber das Excel das schafft.

mfg
Wow, Fennek, Magic! Vielen Dank, dass du das so schnell lösen konntest. Keine Ahnung, wie du das geschafft hast. Es funktioniert schon fast. Allerdings gibt es noch einen kleinen kosmetischen Fehler: die Spalte "strings matched" stimmt zwar, aber gut wäre, wenn "d 4 times" steht, dass dann auch 4 Einträge darunter fallen und nicht die vier darüberliegenden Einträge dazugehören. Hättest du dafür noch eine Idee?
Es ist für mich nicht ersichtlich, warum der letzte Wert 3 Zeilen höher eingetragen werden soll.

Hier mit Excel getestet und etwas verschönert:

Code:
Sub F_en()
rr = 1
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If Left(Cells(i, 1), 5) = "-----" Then rr = rr + 1
    If Cells(i, 1) = "*CHI:" Then Cells(rr, "L") = Cells(i, 2)
    If Cells(i, 1) = "%mor:" Then Cells(rr, "M") = Cells(i, 2)
    If Left(Cells(i, 1), 8) = "*** File" Then Cells(rr, "O") = Mid(Cells(i, 1), 9)
    If InStr(1, Cells(i, 1), "Strings matched") > 0 Then Cells(rr, "P") = Mid(Cells(i, 1), 21)
Next i
End Sub