🚨 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!
>> 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
Ersetzen: Zahl normal - Zahl tiefgestellt
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?
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
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.
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
mikele
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Hey, klasse!
Danke für den guten Tipp!
Danke für den guten Tipp!
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
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
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
Ein Feedback auf eine gegebene Lösung tut nicht weh und zeigt Querlesern, dass das Problem gelöst ist.
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
Wow! Danke! 
Wie kommt man denn auf so etwas?
Wie kommt man denn auf so etwas?
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
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.
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
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
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
- miesepeter
- * LO-Experte *
- Beiträge: 2258
- Registriert: So 19. Dez 2010, 18:16
- Wohnort: Bayern
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
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.
Re: Ersetzen: Zahl normal - Zahl tiefgestellt
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
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
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
Basic
Die Eigenschaft .charEscapement gibt mir ein kleines Rätsel auf. Laut API:
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)
... 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)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 SubCode: Alles auswählen
specifies the percentage by which to raise/lower superscript/subscript characters.
Negative values denote subscripts and positive values superscripts..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
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.