Text in Zelle finden und Inhalt einer anderen Zelle wiedergeben
#1
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


Angehängte Dateien
.xlsx   GO_Ausschnitt.xlsx (Größe: 9,61 KB / Downloads: 5)
Top
#2
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
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Seepferdchen63
Top
#3
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?


Angehängte Dateien Thumbnail(s)
   
Top
#4
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
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Seepferdchen63
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste