Mit Hilfe von ChatGPT konnte ich eine für mich gute Lösung für die
Darstellung von IBAN-Nummern finden.
Ich nutze
LibreOffice 25.8.1.1 in
deutscher Lokalisation (auf einem Mac).
Der umzuformatierende Text befindet sich in Zelle "O3".
Er kann Leerzeichen, sowie Buchstaben in beliebiger Gross-/Kleinschreibung enthalten.
Die Leerzeichen werden erst entfernt, die Schreibweise auf Grossbuchstaben geändert und anschliessend der Wert in 4er-Gruppen gegliedert.
Ist die Ausgangszelle (O3) leer, wird sie leer ("") angezeigt.
=WENN(O3="";"";GLÄTTEN(REGAUS(GROSS(REGAUS(O3;"[^A-Za-z0-9]";"";"g"));"(.{4})";"$1 ";"g")))
Soll die Formatierung auf einen Bereich angewendet werden, kann sie als Matrixformel eingegeben werden.
Das folgende Beispiel bezieht sich auf den Bereich "O3:O500":
=WENN(O3:O500="";"";GLÄTTEN(REGAUS(GROSS(REGAUS(O3:O500;"[^A-Za-z0-9]";"";"g"));"(.{4})";"$1 ";"g")))
um die Funktion als Matrixformel zu kennzeichnen mus sie in MacOS mit [Shift]+[Control]+[Enter] abgeschlossen werden.

Beispielausgabe
Eingabe (O3) Ausgabe (L3)
CH6430400001306757404 CH64 3040 0001 3067 5740 4
ch720023123358026901p CH72 0021 3233 5802 6901 P
(leer) (leer)
_____________________
Chat GPT bot mir zudem eine Macro-Lösung an, welche ich der vollständikeit halber ebenfalls anfüge.
Ich habe keinerlei Erfahrung mit Makros. Kann also keine Angabe dazu machen wie man sie eingibt und ob sie funktioniert:
Möglichkeit 2: Mit einfachem Makro (komfortabel & dauerhaft)
ChatGPT:
Wenn du willst, dass das immer automatisch passiert (z. B. auf Knopfdruck oder beim Öffnen), kannst du ein kleines LibreOffice Basic-Makro verwenden:
*********************************
Sub FormatIBANs
Dim sheet As Object, cellIn As Object, cellOut As Object
Dim i As Long, raw As String, clean As String, formatted As String
sheet = ThisComponent.CurrentController.ActiveSheet
For i = 3 To 500
cellIn = sheet.getCellByPosition(14, i - 1) 'Spalte O (14, 0-basiert)
cellOut = sheet.getCellByPosition(11, i - 1) 'Spalte L (11, 0-basiert)
raw = Trim(cellIn.String)
If raw <> "" Then
clean = UCase(Replace(raw, " ", ""))
clean = Replace(clean, "-", "")
formatted = ""
Do While Len(clean) > 4
formatted = formatted & Left(clean, 4) & " "
clean = Mid(clean, 5)
Loop
formatted = formatted & clean
cellOut.String = Trim(formatted)
Else
cellOut.String = ""
End If
Next i
End Sub
*********************************
Wie du es nutzt:
Öffne Calc → Menü Extras → Makros → Makros verwalten → LibreOffice Basic
Klicke auf Neu…, füge das Makro ein.
Schließe mit OK.
Starte es über Extras → Makros → Makros ausführen → FormatIBANs.

Ergebnis: Spalte O (Zeilen 3–500) wird automatisch in Spalte L formatiert.