Seite 1 von 2
Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: Di 10. Mär 2026, 16:34
von blende8
Moin,
ich möchte in einer Spalte alle Zahlen tiefstellen. Sie sind allerdings mit Buchstaben gemischt, z.B. C5H7.
Geht das irgendwie mit Suchen/Ersetzen?
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: Di 10. Mär 2026, 17:50
von mikele
Hallo,
in Calc meines Wissens nicht.
Ich würde die Spalte kopieren und in Writer einfügen. Dort per Suchen&Ersetzen alle Zahlen suchen (Suchbegriff: [0-9] reguläre Ausdrücke aktivieren)
Die Zahlen sind dann alle markiert und können tiefgestellt werden. Dann wieder alles markieren und zurück in Calc einfügen.
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: Di 10. Mär 2026, 18:10
von blende8
Hey, klasse!
Danke für den guten Tipp!
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: Do 12. Mär 2026, 04:26
von RPP63
Moin!
Mit einer Formel:
=LET(x;TEIL(A1;FOLGE(LÄNGE(A1));1);TEXTKETTE(WENNFEHLER(UNIZEICHEN(x+8320);x)))
Formel mit Strg+Umschalt+Enter abschließen!
Gruß Ralf
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: Do 12. Mär 2026, 13:30
von blende8
Wow! Danke!

Wie kommt man denn auf so etwas?
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: Do 12. Mär 2026, 17:45
von RPP63
blende8 hat geschrieben: ↑Do 12. Mär 2026, 13:30
Wie kommt man denn auf so etwas?
Mir kam die Idee vor grob 10 Monaten.
Grundlage war die Tatsache, dass die tiefgestellten Ziffern von 0 bis 9 Unicode 8320 bis 8329 entsprechen.
Weiterhin verfügen Tabellenkalkulationen über die Fähigkeit der impliziten Typumwandlung, nach der eine "Textziffer" durch eine Rechenoperation in eine "echte" Zahl umgewandelt wird.
(="9"*3 ergibt 27)
Zu meiner Formel:
• zunächst bilde ich einen Vektor x der einzelnen Lettern mittels x;TEIL(A1;FOLGE(LÄNGE(A1));1)
• mittels UNIZEICHEN(x+8320) versuche ich, eine Ziffer in ihr tiefgestelltes Pendant umzuwandeln
• falls das nicht gelingt ("a"+2 ergibt einen Fehler), soll das ursprüngliche Zeichen erhalten bleiben
WENNFEHLER(UNIZEICHEN(x+8320);x)
Dann noch eine Textkette bilden …
Die Vorgeschichte meiner Lösung:
https://www.clever-excel-forum.de/Threa ... O%E2%82%83
Gruß Ralf
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: Fr 13. Mär 2026, 10:42
von bmk
Hallo,
für Writer gibt es da eine Erweiterung:
SuperbChemistry:
This extension applies superscript and subscript formatting to chemical formulas in Writer documents in bulk.
https://extensions.libreoffice.org/en/e ... /show/1053
funktioniert leider nicht für Calc
Gruß bmk
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: Sa 14. Mär 2026, 12:08
von miesepeter
Schwerpunkt Writer: Tiefgestellte Zahlen mit SUCHEN&ERSETZEN ansprechen
- Tiefgestellte Zahlen aus dem Bereich [0-9] lassen sich, wie schon @mikele beschrieb, im Writer mit [0-9] oder \d oder [:digit:] suchen und formatieren (reguläre Ausdrücke anwenden). Dies gilt für hochgestellt, normal und tiefgestellt.
- Eine Umwandlung tiefgestellter in normal formatierte Zeichen (und umgekehrt) ist einfach (Aufheben der direkten Formatierung oder Wegnahme der Zeichenvorlage).
- Unicode-Zeichen im Bereich U+2070 bis U+209C werden nicht als Zahlen angesprochen.
(Übersicht z. B. hier: https://www.compart.com/de/unicode/block/U+2070)
Tiefgestellte Unicode-Zeichen als Zahlen von 0-9 können jedoch mit [₀-₉] oder auch mit [\u2080-\u2089] angesprochen werden (reguläre Ausdrücke anwenden).
- Eine Umwandlung in "normal formatierte" Zeichen ist nicht möglich.
Praktische Bedeutung: Wenn Dateien zum Druck gegeben werden und die Zeichensätze nicht übereinstimmen, kann dies zu Darstellungsproblemen führen.
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: So 15. Mär 2026, 07:38
von Kalhisel
An RPP63 und Miesepeter
Vielen Dank euch beiden für die Erläuterungen - ich finde es sehr lehrreich, wenn ich nicht nur die Lösung sehe, sondern auch den Denkprozess / die Logik dahinter.
Also nochmal Dankeschön, dass ihr euch die Zeit genommen hat, auch nach "Thema gelöst" weitere Denkarbeit zu leisten und zu kommunizieren.
Schönen Sonntag!
Kalhisel
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Verfasst: So 15. Mär 2026, 11:30
von mikele
Hallo,
... einen hab' ich noch ...
falls man es häufoge rbenötigt, wäre eien Makro-Variante vielleicht hilfreich:
Im ausgewählten Zellbereich (oder auch nur der aktuellen Zelle) werden, sofern die Zelle Text enthält, alle Ziffern tiefgestellt.
Zellen mit Formeln oder (Zahl-)werten werden ignoriert.
Python
Code: Alles auswählen
from com.sun.star.table.CellContentType import EMPTY, VALUE, TEXT, FORMULA
def chemformel():
doc=XSCRIPTCONTEXT.getDocument()
oSel=doc.CurrentSelection
if oSel.supportsService("com.sun.star.sheet.SheetCellRange"):
for i in range(oSel.Columns.Count):
for k in range(oSel.Rows.Count):
zelle=oSel.getCellByPosition(i,k)
if zelle.Type==TEXT:
cur=zelle.Text.createTextCursor()
cur.gotoStart(False)
while cur.goRight(1,True):
if cur.String in set("0123456789"):
cur.CharEscapement=-14000
cur.CharEscapementHeight=58
cur.goRight(0,False)
Basic
Code: Alles auswählen
Sub chemformel
oDoc=ThisComponent
oSel=oDoc.CurrentSelection
if osel.supportsservice("com.sun.star.sheet.SheetCellRange") then
for i=0 to osel.columns.count-1
for k=0 to osel.rows.count-1
zelle=osel.getcellbyposition(i,k)
if zelle.Type=com.sun.star.table.CellContentType.TEXT then
cur=zelle.text.createtextcursor
cur.gotostart(false)
do while cur.goright(1,true)
if instr("0123456789",cur.string)>0 then
cur.charEscapement=-14000
cur.charEscapementHeight=58
end if
cur.goright(0,false)
loop
end if
next
next
end if
End Sub
Die Eigenschaft .charEscapement gibt mir ein kleines Rätsel auf. Laut API:
Code: Alles auswählen
specifies the percentage by which to raise/lower superscript/subscript characters.
Negative values denote subscripts and positive values superscripts.
Was dann aber .charEscapement=-14000 bedeutet???
.charEscapementHeight=58 ist klar: 58% Höhe
Die beiden Werte habe ich einem tiefgestellten Text in Writer entnommen und sollten also die Standardwerte für das Tiefstellen sein... (dann sollte aber .charEscapement=-8 gelten)