🚨 Das LibreOffice Forum braucht jetzt Ihre Hilfe! 🚨
🙏 Spenden Sie heute und sichern Sie die Zukunft unseres LibreOffice-Forums 🙏
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

❤️ DANKE >> << DANKE ❤️

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

Ersetzen: Zahl normal - Zahl tiefgestellt

CALC ist die Tabellenkalkulation, die Sie immer wollten.
blende8
Beiträge: 297
Registriert: Mi 15. Jul 2015, 19:58

Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von blende8 » Di 10. Mär 2026, 16:34

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?

mikele
* LO-Experte *
Beiträge: 2040
Registriert: Mo 1. Aug 2011, 20:51

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von mikele » Di 10. Mär 2026, 17:50

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.
Gruß,
mikele

blende8
Beiträge: 297
Registriert: Mi 15. Jul 2015, 19:58

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von blende8 » Di 10. Mär 2026, 18:10

Hey, klasse!
Danke für den guten Tipp!

Benutzeravatar
RPP63
Beiträge: 230
Registriert: Sa 21. Apr 2018, 09:33

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von RPP63 » Do 12. Mär 2026, 04:26

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!
Bild

Gruß Ralf
Ein Feedback auf eine gegebene Lösung tut nicht weh und zeigt Querlesern, dass das Problem gelöst ist.

blende8
Beiträge: 297
Registriert: Mi 15. Jul 2015, 19:58

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von blende8 » Do 12. Mär 2026, 13:30

Wow! Danke! 👍
Wie kommt man denn auf so etwas?

Benutzeravatar
RPP63
Beiträge: 230
Registriert: Sa 21. Apr 2018, 09:33

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von RPP63 » Do 12. Mär 2026, 17:45

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
Ein Feedback auf eine gegebene Lösung tut nicht weh und zeigt Querlesern, dass das Problem gelöst ist.

bmk
Beiträge: 32
Registriert: Do 2. Nov 2017, 22:00

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von bmk » Fr 13. Mär 2026, 10:42

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

Benutzeravatar
miesepeter
* LO-Experte *
Beiträge: 2258
Registriert: So 19. Dez 2010, 18:16
Wohnort: Bayern

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von miesepeter » Sa 14. Mär 2026, 12:08

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.

Kalhisel
Beiträge: 36
Registriert: Sa 10. Apr 2021, 10:28

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von Kalhisel » So 15. Mär 2026, 07:38

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

mikele
* LO-Experte *
Beiträge: 2040
Registriert: Mo 1. Aug 2011, 20:51

Re: Ersetzen: Zahl normal - Zahl tiefgestellt

Beitrag von mikele » So 15. Mär 2026, 11:30

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)
Gruß,
mikele


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten