Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Suchen nach bester Text-Übereinstimmung
#1
Hallo liebe Forums-Mitglieder,

vorab, ich arbeite noch nicht allzu lange mit Excel daher entschuldigt meine Unwissenheit. Ebenfalls bin ich neu in diesem Forum.

Folgende Situation: 
In meiner Excel Datei geht es um Etiketten in verschiedenen Sprachen.

Sheet 1 beinhaltet unter anderem 5 Spalten mit den Text Elementen für 5 verschiedene Sprachen.

Beispiel:

Tabletten.   Tablets.    comprimés.    comprimidos.     compresse.  

Die Etiketten werden vom Produktentwickler zunächst in Deutsch angefertigt und sollen dann in die anderen 4 Sprachen mit den Daten aus Sheet 1 übersetzt werden.

Dafür habe ich Sheet 2 angefertigt wo über folgende Formel die Übersetzungen in die 4 Sprachen ausgespuckt werden:

=WENN(ISTFEHLER(SVERWEIS($D10;Datenanlage!$B$6:$K$4941;4;0));"Übersetzung nicht vorhanden!";SVERWEIS($D10;Datenanlage!$B$6:$K$4941;4;0))

Das Funktioniert auch solange der Deutsche-Suchtext genauso im Sheet 1 vorhanden ist.

Problem ist, dass der Suchtext der ja vom Produktentwickler kommt oft nicht 100% übereinstimmt.
Eine Lösung für "zu wenig" Text habe ich gefunden mit Platzhaltern:
=WENN(ISTFEHLER(SVERWEIS("*"&$D10&"*";Datenanlage!$B$6:$K$4941;3;0));"Übersetzung nicht vorhanden!";SVERWEIS("*"&$D10&"*";Datenanlage!$B$6:$K$4941;3;0))

Nun die Problemsituation:
In der zu übersetzenden Etikett-Datei steht zum Beispiel "- vegan" im Sheet 1 jedoch nur "vegan" weshalb mit meiner Formel die zugehörigen Übersetzungen nicht gefunden werden. Natürlich könnte man den Bindestrich vor dem kopieren entfernen, jedoch könnte man dann genauso gut in Sheet 1 mit Strg + F arbeiten. Außerdem hat das Etikett sehr viele Einträge weshalb ich nach einer Lösung suche in der man die Inhalte des Etiketts kopiert und die beste Übereinstimmung aus Sheet 1 gefunden wird und somit die passenden Übersetzungen ausgespuckt werden. 

Ich hoffe ich konnte das Problem ordnungsgemäß darlegen. Es würde mich freuen wenn ihr mir helfen könnt.

LG
Antworten Top
#2
Hola,
schau dir mal die Lösung von Hydronaut in diesem Thread an:
https://www.clever-excel-forum.de/Thread...s-Ergebnis
Gruß,
steve1da
Antworten Top
#3
Hey Steve,

habs mir mal angeschaut allerdings bekomme ich es leider nicht ans laufen. 

Verstehe leider auch nicht genau wie die Formel funktioniert.
=VERWEIS(2;1/SUCHEN(Tabelle!$P$3:$P$5;A2);Tabelle!$Q$3:$Q$5)

Gruß
Antworten Top
#4
Dann lad doch bitte mal eine Beispieldatei hoch.
Antworten Top
#5
Hello,

hab schnell eine Datei gebaut, hoffe das hilft. 

LG


Angehängte Dateien
.xlsx   Übersetzungsabfrage.xlsx (Größe: 15,15 KB / Downloads: 15)
Antworten Top
#6
Sorry, mein Fehler. Passt doch nicht ganz.
Ist die Ausnahme immer ein Bindestrich mit Leerzeichen, oder kommen auch andere Varianten vor?
Antworten Top
#7
Leider kommen auch andere Ausnahmen vor...
Antworten Top
#8
...schau Dir mal diese Power Query Lösung an. Dürfte genau das sein, was Du suchst.
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#9
Vorschlag:


Code:
Function F_snb(c00, y)
  sn = Sheet1.ListObjects(1).DataBodyRange
  sp = Split(LCase(c00))
  For j = 1 To UBound(sn)
    If LCase(c00) = LCase(sn(j, 1)) Then
        F_snb = sn(j, y)
        Exit Function
    End If
    For jj = 0 To UBound(sp)
      If LCase(sp(jj)) Like "[!a-z]" Then n = 0 Else n = n + InStr(LCase(sn(j, 1)), LCase(sp(jj)))
    Next
    If n > 0 Then
      F_snb = sn(j, y)
      Exit For
    End If
  Next
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


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