Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abkürzungen aus Zelle in Langtexte umwandeln

Forumthread: Abkürzungen aus Zelle in Langtexte umwandeln

Abkürzungen aus Zelle in Langtexte umwandeln
07.11.2008 13:52:07
Ingo
Hallo,
ich möchte euch um Hilfe bitte. Ich habe Abkürzungen in einer Zelle (Spalte A) drin. In einer anderen Zelle (Spalte B) möchte ich gerne die ausgeschriebenen Wörter in korrekter Reihenfolge darstellen lassen:
Userbild
In dem zweiten Bereich habe ich eine Zuordnung von Abkürzungen zu ausgeschriebenen Texten.
Wie kann ich bitte, vielleicht auch ohne Makros, die Ergebnisse in B4, B5 usw erstellen lassen?
Viele Grüße
Ingo
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abkürzungen aus Zelle in Langtexte umwandeln
07.11.2008 14:28:56
ptonka
Hallo Ingo,
eine Wahnsinnsformel, aber es klappt so einigermaßen:
Stelle u.a. Formel in Zelle B4:
=VERKETTEN(WENN(ISTFEHLER(SVERWEIS(TEIL($A$4;FINDEN(A8;$A$4;1);LÄNGE(A8));$A$8:$B$13;2;0))=WAHR;""; SVERWEIS(TEIL($A$4;FINDEN(A8;$A$4;1);LÄNGE(A8));$A$8:$B$13;2;0));" "; WENN(ISTFEHLER(SVERWEIS(TEIL($A$4;FINDEN(A12;$A$4;1);LÄNGE(A12));$A$8:$B$13;2;0))=WAHR;""; SVERWEIS(TEIL($A$4;FINDEN(A12;$A$4;1);LÄNGE(A12));$A$8:$B$13;2;0));" "; WENN(ISTFEHLER(SVERWEIS(TEIL($A$4;FINDEN(A10;$A$4;1);LÄNGE(A10));$A$8:$B$13;2;0))=WAHR;""; SVERWEIS(TEIL($A$4;FINDEN(A10;$A$4;1);LÄNGE(A10));$A$8:$B$13;2;0));" "; WENN(ISTFEHLER(SVERWEIS(TEIL($A$4;FINDEN(A11;$A$4;1);LÄNGE(A11));$A$8:$B$13;2;0))=WAHR;""; SVERWEIS(TEIL($A$4;FINDEN(A11;$A$4;1);LÄNGE(A11));$A$8:$B$13;2;0));" "; WENN(ISTFEHLER(SVERWEIS(TEIL($A$4;FINDEN(A13;$A$4;1);LÄNGE(A13));$A$8:$B$13;2;0))=WAHR;""; SVERWEIS(TEIL($A$4;FINDEN(A13;$A$4;1);LÄNGE(A13));$A$8:$B$13;2;0));" "; WENN(ISTFEHLER(SVERWEIS(TEIL($A$4;FINDEN(A9;$A$4;1);LÄNGE(A9));$A$8:$B$13;2;0))=WAHR;""; SVERWEIS(TEIL($A$4;FINDEN(A9;$A$4;1);LÄNGE(A9));$A$8:$B$13;2;0)))
Was hier mit $A$4 bezeichnet ist, musst Du, wenn Du die Zelle in B5 kopierst auf $A$5 ändern.
Gruß,
Ptonka
Anzeige
AW: Abkürzungen aus Zelle in Langtexte umwandeln
07.11.2008 15:00:56
Ingo
Hallo ptonka,
vielen Dank für die Lösung. Was ich nicht geschrieben hatte: es sind deutlich mehr Abkürzungen als in diesem Beispiel. Bei 30 Abkürzungen wird die Formel sehr lang.
Gibt es eine Verkürzungmöglichkeit?
Viele Grüße
Ingo
AW: Abkürzungen aus Zelle in Langtexte umwandeln
07.11.2008 15:18:00
ptonka
Hallo Ingo,
da wirst Du wohl um ein Makro nicht herumkommen.#
Gruß,
Ptonka
Anzeige
Makro gesucht
07.11.2008 15:32:03
Ingo
Hallo Ptonka,
ja, dann hoffe ich auf eine Makrohilfe.
Danke Ingo
AW: noch etwas 'augefeilter'
08.11.2008 14:36:23
Peter
Hallo Ingo,
so sollte das Makro mit allen vorkommenden Positionen fertig werden.
https://www.herber.de/bbs/user/56632.xls
Gruß Peter
Anzeige
AW: noch etwas 'augefeilter'
10.11.2008 17:20:00
Ingo
Hallo Peter,
das ist spitze. Hab ganz herzlichen Dank für die Hilfe!
Beste Grüße
Ingo
AW: noch etwas 'augefeilter'
11.11.2008 11:02:00
Ingo
Moin Peter,
leider kann ich das Makro nicht komplett auf meine Datei anpassen. Kannst du bitte nochmal helfen?
- Meine Tabellennamen sind DATA und ZIEL, konnte ich ändern.
- Die Reihenfolge der Abkürzungen beginnt erst in Zeile 4, ging ebenfalls.
- Die Langtexte sollen in ZIEL in Spalte N ab Zeile 13 geschrieben werden.
- Die Abkürzungen stehen in ZIEL ab O13:O
- In DATA sind die drei Spalten gleich angelegt. Die Überschrift ist in Zeile 3 (=Abkürz., Langtext, Pos.), die Inhalte ab Zeile 4
> Ich bekomme die Fehlermeldung "Index außerhalb des gültigen Bereichs."
> Was bedeutet bitte "rows.count?
Hier nun meine Anpassung:
Option Explicit
'
' Ich habe Abkürzungen in einer Zelle in Spalte A.
' In einer anderen Zelle (Spalte B) möchte ich gerne die ausgeschriebenen Wörter
' in korrekter Reihenfolge darstellen lassen:
'
' In dem zweiten Bereich habe ich eine Reihenfolge der Abkürzungen zu ausgeschriebenen
' Texten.
'

Public Sub Klartext()
Dim WkSh_Q   As Worksheet ' das Quell-Tabellenblatt - mit den Kürzeln und dem Langtext
Dim WkSh_Z   As Worksheet ' das  Ziel-Tabellenblatt - mit den Eingaben und den Ausgaben
Dim aTemp    As Variant   ' ein temporerer Array für die Eingaben
Dim iIndx    As Integer   ' der For/Next Index zum temporären Array
Dim lZeile   As Long      ' For/Next Zeilen-Index zum Eingaben-Tabellenblatt
Dim aLngTxt  As Variant   ' ein Arbeits-Array für die Langtext-Ausgabe
Dim iLngMax  As Integer   ' die maximale Position der Langtexte
Dim rZelle   As Range     ' die Zelle mit den gesuchten Kürzeln zum vorgegebenen Kürzel
Application.ScreenUpdating = False ' kein Bildschirm-Update - kein flackern
Set WkSh_Q = ThisWorkbook.Worksheets("Data") ' den Blattnamen für Quelle anpassen
Set WkSh_Z = ThisWorkbook.Worksheets("Ziel") ' den Blattnamen für Ziel anpassen
iLngMax = Application.WorksheetFunction.Max(WkSh_Q.Range("C4:C" & _
WkSh_Q.Cells(Rows.Count, 3).End(xlUp).Row))   ' die maximale Zuordnung/Reihenfolge
WkSh_Z.Range("N13:N" & WkSh_Z.Cells(Rows.Count, 14).End(xlUp).Row).ClearContents ' 14 statt  _
2
With WkSh_Z
For lZeile = 13 To .Cells(Rows.Count, 1).End(xlUp).Row ' rows.count 15 statt 1 ?
aTemp = Split(.Cells(lZeile, 15).Value, " ") ' die Eingaben am Space trennen;  _
Startzelle Zeile=lZeile; Spalte=15=N
ReDim aLngTxt(iLngMax) ' den Arbeits-Array für die Langtexte redimensionieren
For iIndx = LBound(aTemp) To UBound(aTemp)  ' den temporären Array abarbeiten
With WkSh_Q.Range("A4:A" & WkSh_Q.Cells(Rows.Count, 1).End(xlUp).Row)
Set rZelle = .Find(aTemp(iIndx), LookAt:=xlWhole, LookIn:=xlValues)
If Not rZelle Is Nothing Then         ' das Kürzel wurde gefunden
If aLngTxt(CInt(WkSh_Q.Cells(rZelle.Row, 3).Value) - 1) = "" Then
aLngTxt(CInt(WkSh_Q.Cells(rZelle.Row, 3).Value) - 1) = _
WkSh_Q.Cells(rZelle.Row, 2).Value
Else
aLngTxt(CInt(WkSh_Q.Cells(rZelle.Row, 3).Value) - 1) = _
aLngTxt(CInt(WkSh_Q.Cells(rZelle.Row, 3).Value) - 1) & " " & _
WkSh_Q.Cells(rZelle.Row, 2).Value
End If
Else
MsgBox "Das Kürzel  """ & aTemp(iIndx) & """  wurde nicht gefunden.", _
48, "   Hinweis für " & Application.UserName
End If
End With
Next iIndx
For iIndx = LBound(aLngTxt) To UBound(aLngTxt)
If WkSh_Z.Cells(lZeile, 14).Value = "" Then ' 14 statt 2, da N=14?
If aLngTxt(iIndx)  "" Then WkSh_Z.Cells(lZeile, 14).Value = aLngTxt(iIndx)  '  _
14 statt 2
Else
If aLngTxt(iIndx)  "" Then WkSh_Z.Cells(lZeile, 14).Value = _
WkSh_Z.Cells(lZeile, 14).Value & " " & aLngTxt(iIndx)  ' 14 statt 2
End If
Next iIndx
Next lZeile
End With
Application.ScreenUpdating = False
End Sub


Viele Grüße
Ingo

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Abkürzungen in Excel in Langtexte umwandeln


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Lege zwei Spalten an. In Spalte A (z.B. A4) sollten die Abkürzungen stehen, und in Spalte B (z.B. B4) die Langtexte, die du aus den Abkürzungen generieren möchtest. In einem anderen Bereich (z.B. A8:B13) erstelle eine Zuordnung von Abkürzungen zu Langtexten.

  2. Formel eingeben: In Zelle B4 kannst du die folgende Formel verwenden, um die Abkürzungen in Langtexte umzuwandeln:

    =VERKETTEN(WENN(ISTFEHLER(SVERWEIS(TEIL($A$4;FINDEN(A8;$A$4;1);LÄNGE(A8));$A$8:$B$13;2;0))=WAHR;""; SVERWEIS(TEIL($A$4;FINDEN(A8;$A$4;1);LÄNGE(A8));$A$8:$B$13;2;0));" "; ...)

    Passe die Referenzen entsprechend an, wenn du die Formel in die Zellen B5, B6 usw. kopierst.

  3. Formel anpassen: Wenn du mehr als 30 Abkürzungen hast, kann die Formel sehr lang werden. In diesem Fall kann ein Makro die bessere Lösung sein.


Häufige Fehler und Lösungen

  • Fehlermeldung "Index außerhalb des gültigen Bereichs": Diese Meldung tritt häufig auf, wenn die Referenzen in deinem Makro oder deiner Formel nicht korrekt auf die Daten in deinen Tabellenblättern zeigen. Überprüfe, ob die Tabellennamen und Zellreferenzen korrekt sind.

  • Formel funktioniert nicht: Stelle sicher, dass die Abkürzungen, die du in Spalte A eingegeben hast, genau den Werten in deiner Zuordnung (A8:B13) entsprechen. Groß- und Kleinschreibung kann hier eine Rolle spielen.


Alternative Methoden

Wenn du die Verwendung von Formeln vermeiden möchtest, kannst du auch ein Makro schreiben, um die Abkürzungen in Langtexte umzuwandeln. Hier ist ein Beispiel für ein einfaches Makro:

Sub Klartext()
    ' Variablen definieren
    Dim WkSh_Q As Worksheet
    Dim WkSh_Z As Worksheet
    ' ...

    ' Logik zum Umwandeln der Abkürzungen
    ' ...
End Sub

Dieses Makro kannst du anpassen, um deine spezifischen Anforderungen zu erfüllen.


Praktische Beispiele

Angenommen, du hast folgende Abkürzungen in Spalte A:

  • A4: "BRD"
  • A5: "USA"

Und diese Zuordnung in A8:B10:

  • A8: "BRD", B8: "Bundesrepublik Deutschland"
  • A9: "USA", B9: "Vereinigte Staaten von Amerika"

Die Formel in B4 würde "Bundesrepublik Deutschland Vereinigte Staaten von Amerika" ergeben.


Tipps für Profis

  • Verwende die SVERWEIS-Funktion: Diese Funktion ist sehr nützlich, wenn du große Datenmengen hast, und ermöglicht dir, Abkürzungen effizient in Langtexte umzuwandeln.

  • Excel-Namenskürzel erstellen: Überlege dir, wie du häufig verwendete Abkürzungen als Namen in Excel speichern kannst, um die Eingabe zu erleichtern.


FAQ: Häufige Fragen

1. Wie kann ich Excel-Abkürzungen erstellen?
Du kannst Abkürzungen in einem Tabellenblatt anlegen und diese dann mit einer SVERWEIS-Formel in Langtexte umwandeln.

2. Gibt es eine Möglichkeit, die Abkürzung in Excel schneller zu verarbeiten?
Ja, ein Makro kann helfen, die Verarbeitung der Abkürzungen zu automatisieren, besonders wenn du viele Abkürzungen hast.

3. Wie kann ich Excel-Länderkürzel ausschreiben?
Du kannst eine ähnliche Methode wie oben beschrieben verwenden, indem du eine Zuordnung von Länderkürzeln zu deren vollständigen Namen anlegst und diese mit SVERWEIS abgleichst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige