🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt 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: 2047
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: 233
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: 233
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: 2273
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: 2047
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:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten