Finde Großbuchstaben und setze davor ein Leerzeichen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Skogtroll
*
Beiträge: 19
Registriert: So, 19.04.2015 18:05

Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von Skogtroll »

Moin!

Ist folgendes im OpenOffice Calculator möglich?:

In einer Zelle steht z.B. folgender Satz "RideLikeTheWind-ChristopherCross". Jetzt möchte ich beginnend beim 2. Großbuchstaben DIESEN und alle nach diesem folgende Großbuchstaben finden und vor diese jeweils ein Leerzeichen einfügen.

Aus "RideLikeTheWind-ChristopherCross" soll "Ride Like The Wind - Christopher Cross" werden. Das mit dem Leerzeichen vor dem "-" wäre dann der nächste Schritt, aber erst mal nur einen Schritt.

Das Problem: Es kann auch ein ganz anderer Satz sein. Z.B. "Rosanna-TOTO" ...aus dem soll dann "Rosanna - TOTO" werden. Die Anzahl der Großbuchstaben ist von Satzt zu Satz variabel. Und vor dem 1. Großbuchstaben soll eben kein Leerzeichen eingefügt werden.

Das Ergebnis kann bzw. soll in einer anderen Zelle (z.B. die daneben) ausgegeben werden.

Die Sätze befinden sich untereinander in einer Spalte.

Kann man dass in OO-Calc mit einer Formel lösen?!? ...oder Bedarf es da schon der Hilfe eines Makros bzw. einer Script-Anweisung.*

* von MS Excel ist mir VBA durchaus ein Begriff. Gilt das auch für OpenOffice Calculator?!?

Vielen Dank für Eure Hilfe!

LG
Skogtroll
-----
LG
Skogtroll
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von clag »

n'Abend Skogtroll,

hahah das Thema hatten wie gerade guckst du hier
oder nimmst gleich folgendes Formel-Monster,
welches aber genau das tut was du möchtest

=GLÄTTEN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(B4;"A";" A");"B";" B");"C";" C");"D";" D");"E";" E");"F";" F");"G";" G");"H";" H");"I";" I");"J";" J");"K";" K");"L";" L");"M";" M");"N";" N");"O";" O");"P";" P");"Q";" Q");"R";" R");"S";" S");"T";" T");"U";" U");"V";" V");"W";" W");"X";" X");"Y";" Y");"Z";" Z");"Ä";" Ä");"Ö";" Ö");"Ü";" Ü");"-";" -"))


viel Spaß :)

PS
es sollte klar sein das die Formel nur zum Umwandeln dient und danach der neue Titel kopiert und als Text eingefügt wird.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von komma4 »

Was 'ne Formel, LOL

Es geht auch mit Suchen & Ersetzen:

Suchen nach:

Code: Alles auswählen

([a-z])([:upper:])(.*)
Ersetzen durch:

Code: Alles auswählen

$1 $2$3
Optionen Groß-/Kleinschreibung und Regulärer Ausdruck müssen gesetzt sein.

So oft die Taste "Ersetze alle" drücken, bis die Meldung "Suchbegriff nicht gefunden" ausgegeben wird (maximal die maximale Anzahl der Grossbuchstaben in einer Zelle)

Den Bindestrich bekommste auch schnell mit der Ersetzen-Funktion weg^^
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Skogtroll
*
Beiträge: 19
Registriert: So, 19.04.2015 18:05

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von Skogtroll »

Danke für Eure Antworten!!!

@Clag: KLAPPT!!! Vielen Vielen Dank! ...da hat mal jemand um eine Ecke mehr gedacht: "Soviel geklammertes wie es Großbuchstaben gibt und dann mach da mal ein Leerzeichen rein" ...mal so grob quergedacht gesagt... :D

By the way: Ich hatte die Suche hier im Forum bemüht, aber leider bin ich Deinen erwähnten Beitrag nicht gestoßen. Dank Deiner Aufmerksamkeit bin ich nun weiter gekommen! Danke!

-----

@Winfried: Auch Dir ein großes Danke! ...aber mir ist die Formel-Lösung in diesem Fall symphatischer! Dein Vorschlag wäre aber keine Formel ...oder?!

In Excel kenne ich den VBA-Editor, dort kann man Makros oder Skript-Anweisungen in den Tabellenblättern und/oder global in der Tabelle hinterlegen. Hat OO-Calc auch so etwas? Ich bin da noch nicht so bewandert.

Danke Euch Allen nochmals!!!

LG
Skogtroll
-----
LG
Skogtroll
Benutzeravatar
ChristianAC
***
Beiträge: 91
Registriert: So, 30.11.2014 23:59

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von ChristianAC »

zu erreichen über Extras - Makros - Makros verwalten...
und dann ein Modul bearbeiten,dann kommt das BASIC-Fenster

unter Extras - Anpassen gibt es Events wie öffnen,speichern des Docs,Programmstart/ende...

(zumindest war das in Version 3.0.0 noch so,die ich nutz')

zu den ganzen Worksheet-Events gibt es aber,wenn ich da richtig liege,keine Alternative im OpenOffice.

nachdenkliche Grüsse, Chris
Internetrechner mit Win 7 OO 3.0.0 sowie Notebook mit XP und AOO 4.1.1
VideoPoker-Spiel
Skogtroll
*
Beiträge: 19
Registriert: So, 19.04.2015 18:05

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von Skogtroll »

Danke für Deinen Hinweis Chris!
ChristianAC hat geschrieben:nachdenkliche Grüsse, Chris
...weil es keine Events für Tabellenblätter usw. wie in Excel gibt?! Na ja, VBA in Excel ist schon sehr mächtig... ...aber für meine Zwecke reicht mir OO.

Außerdem habe ich keine Lust mehr, mich dem MS-Diktat in Sachen Programm-Layouts zu unterwerfen. Verschlimmbessern, das können die sehr gut! Ganz zu schweigen von den Kosten...

Mir reicht OO völlig und bis auf ein paar Kleinigkeiten (in Writer) gefällt mir das Programmlayout sehr sehr gut! Kann man besser mit arbeiten, als mit diesem "Registerkarten-System"... :D

Euch Allen nochmals herzlichen Dank! Dank der Mega-Formel läuft's bei mir vorzüglich!!!

LG
Skogtroll
-----
LG
Skogtroll
paljass
******
Beiträge: 792
Registriert: Do, 25.10.2012 07:25

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von paljass »

Hi Skogtroll,
Dank der Mega-Formel läuft's bei mir vorzüglich!!!
Verstehe ich jetzt nicht ganz!
"Rosanna-TOTO" ...aus dem soll dann "Rosanna - TOTO" werden.
... es wird aber Rosanna - T O T O
daraus !?!

Gruß
paljass
EDV ist wie U-Boot fahren - machst du ein Fenster auf, fangen die Probleme an.
Skogtroll
*
Beiträge: 19
Registriert: So, 19.04.2015 18:05

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von Skogtroll »

paljass hat geschrieben:... es wird aber Rosanna - T O T O
...ja, da kann man mal sehen, wie gut es läuft!!! :wink: ...kleiner Scherz!!!

Ja! Du hast Recht! ...aber es stört mich in diesem Falle auch nicht! Ich könnte natürlich in der Primärzelle "Toto" anstatt "TOTO" schreiben, dann würde auch "Toto" dabei rauskommen.

Ist aber alles O.K.! Die Leerzeichenin dem Bandnamen stören mich jetzt nicht!

-----

Etwas zum Hintergrund meines Threads: Ihr habt es vielleicht bemerkt -> ich mache Musik und spiele in einer Coverband. Ich arbeite mit einem kleinen Tablet am Mikrofoständer welcher mir mit einer einfachen html-Datei in einem I-Browser die Songlisten, Hinweise zu den Songs (welche Sounds ich schalten muss) und mir PDF-Datein in einem neuen Tab öffnet.
Und dazu brauche ich das html-Format: Alle aufgelisteten Songs sind verlinkt zu PDF-Dateien (wenn ich mal einen Blick auf die Harmonien und/oder den Ablauf eines Songs luschern muss :wink: )

Da ich keine Lust habe, immer den kpl. html-Quellcode neu schreiben, hatte ich die Idee, mir das Ganze mit einer Tabellencalculation "ausrechnen/zusammensetzen" zu lassen. Ich sortiere mir schnell die Songs in meiner *.ods-Datei und dann kopiere ich mir aus der Ergebnisspalte den html-Body Quelltext kpl. fertig raus -> eingefügt in den Body meiner html-Vorlage, neuer Name für die html-Datei und schon ist es ein schönes Proben bzw. schöner Auftritt.

Vorher hatte ich einen einfachen DIN-A4 Ordner, prall gefüllt mit Blättern in Klarsichtfolie... ...sagen wir mal so: 1. ist ein Tablet wesentlich (!) kleiner, 2. passen auf einem Tablet ein paar hundert (...und noch mehr!) DIN-A4 Ordner drauf und 3. finde ich jetzt ein Script/PDF und Sunds zu einem Stück in einem Bruchteil der Zeit... ...sucht mal den jetzt zu probenden Song aus so einem Stapel DIN-A4 Blätter raus...

-----

@Wim: ...ahhh JAAAHHH!!!

O.K., so geht das in OO!! Danke Dir Wim!

Allerdings:
OpenOffice benötigt eine Java-Laufzeitumgebung(JRE), um diese Aufgabe durchführen zu können. Bitte installieren Sie eine JRE und starten Sie dann OpenOffice neu.
...diese Meldung hatte ich schon öfters (auch in Writer)... ...ich verstehe sie nur nicht: Ich habe Java installiert und kriege da nix eingerichtet :shock:

Wie aktiviere ich denn Java für OO? Ist "JRE" etwas spezielles, wo sehe ich denn, dass ich dieses auf meinem Rechner habe? Und wenn nicht, wo kriege ich das her?

Ich hatte schon seinerzeit via Google gesucht, aber nix gefunden.

-----

Noch eine andere Frage: In der Hauptsache arbeite ich mit OO an einem normalen Rechner/NB. Ich habe jetzt ganz aktuell auch ein Tablet, hier muss ich nun nicht in der Hauptsache mit OO arbeiten, habe es dennoch für kleinere Arbeiten in OO installiert.

Hier macht der rechte Bildlauf extreme Probleme, wenn ich versuche ihn mit dem Finger "zu fassen"! Hat das einen Grund? ...oder gibt es eine Systemeinstellung, in der man diesen rechten Bildlauf verbreitern kann?!

Danke Euch Allen nochmals!

LG
Skogtroll
-----
LG
Skogtroll
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von TrueColor »

Skogtroll hat geschrieben:Wie aktiviere ich denn Java für OO?
OO erkennt normalerweise, ob JRE installiert ist.
Ist "JRE" etwas spezielles[?]
http://de.wikipedia.org/wiki/Java-Laufzeitumgebung
wo sehe ich denn, dass ich dieses auf meinem Rechner habe?
In den inst. Programmen als "Java" oder "Java Runtime Environment". Wenn du nicht aufgeräumt hast, existiert sogar ein Eintrag im Startmenü.
Und wenn nicht, wo kriege ich das her?
von oracle.com oder java.com
Ich hatte schon seinerzeit via Google gesucht, aber nix gefunden.
Wann war denn "seinerzeit"? ;-)
Google listet (bei mir) sowohl mit "JRE" als auch mit "Java Runtime Environment" sofort unzählige Downloadmöglichkeiten auf der ersten Seite auf.
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
Skogtroll
*
Beiträge: 19
Registriert: So, 19.04.2015 18:05

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von Skogtroll »

WiM hat geschrieben:Bitte achtet auf notwendige Angaben und Pro Thread ein Thema
...ja so soll es auch sein und so bleibt es übersichtlich! Manchesmal ergibt sich halt immer das eine aus dem anderen... :D

Das mit meinem JAVA hat sich geklärt: Ich hatte JAVA installiert, aber aus irgend welchen Gründen fehlerhaft -> deinstalliert -> neu installiert -> jetzt wird es automatisch von OO erkannt!!!

-----

Back to the roots: Gemäß meiner Eingangsfrage hat sich mein Problem dank Eurer Hilfe erledigt! Die Formel funktioniert wunderbar!!

Danke Euch Allen nochmals!

LG
Skogtroll
-----
LG
Skogtroll
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von clag »

Hallo Skogtroll,

das gemaule :wink: von
paljass hat geschrieben:... es wird aber Rosanna - T O T O
daraus !?!
und die Tatsache das so ein Formel-Monster anfällig für Fehler ist, besonders wenn die Formel über die Eingabezeile hinausgeht
(ein Zeichen versehentlich gelöscht und schon wird es echt blöd bei der Fehlersuche).

Aus diesem Gründen habe ich mal eine Funktion CAPSPACER() erstellt die nur dem ersten Großbuchstaben einer Reihe ein Leerzeichen voranstellt, also Gruppennamen oder Titel in Großbuchstaben werden nicht auseinandergerissen

Code: Alles auswählen

Function CAPSPACER(mytxt as string)
	iLmax = len(mytxt)
	dim mMyTxt(1 to iLmax)
	dim mLoTxt(1 to iLmax)
	dim mDiff(1 to iLmax)
	for i=1 to len(mytxt)
		mMyTxt(i) = ASC(mid(mytxt,i,1))
		mLoTxt(i) = ASC(mid(lcase(mytxt),i,1))
		mDiff(i) = mLoTxt(i)-mMyTxt(i) 
	next
	for i=ubound(mDiff)-1 to 2 step -1
		if mDiff(i)>0 and mDiff(i-1)=0 or mid(mytxt,i,1)= "-"then
		mytxt = left(mytxt,i-1) & " " & right(mytxt,(len(mytxt)-i+1))
		end if
	next
	if mytxt="0" then mytxt=""
	CAPSPACER=mytxt
End Function
copiere den obigen Code und füge ihn unter
Menü - Extras - Makros - Makros Verwalten - OpenOfficeBasic - Standard - Funktionen dort komplett ein.

Danach kannst du diese wie jede andere Funktion nutzen also CAPSPACER(B4)
Capspacer.png
Capspacer.png (6.39 KiB) 7790 mal betrachtet
Viel Spaß damit
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
TrueColor
******
Beiträge: 542
Registriert: Do, 11.03.2010 11:23

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von TrueColor »

Hallo Clag,

nur zum Verständnis:

wie ist
clag hat geschrieben:

Code: Alles auswählen

if mDiff(i)>0 and mDiff(i-1)=0 or mid(mytxt,i,1)= "-"then
zu lesen?

Als (1 AND 2) OR 3 oder als 1 AND (2 OR 3)?

Ich hab da immer meine Schwierigkeiten, da ja Logikoperatoren m.W.n. gleichrangig sind.

Danke!
System:
Arbeit: Windows 7 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3), LibreOffice 4.1.4.2
Home: Windows 10 (64 bit) + Apache OpenOffice 4.1.2 (AOO412m3)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von clag »

Hallo TrueColor,
TrueColor hat geschrieben:Als (1 AND 2) OR 3
ist was ich beabsichtigte

das or habe ich noch nachträglich rein gewürgt um eine weiteren Code zu vermeiden :wink:
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7440
Registriert: Mo, 02.01.2006 19:48

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von Karolus »

Oha - was für ein Aufwand

schlicht zwei Durchgänge →Suchen und ersetzen:
  • 1. suche [A-Z]+|- ersetzen durch <Leertaste>$0
    • [x]regulärer Ausdruck
      [x]Gross/Kleinschreibung
    2. suche ^<Leertaste> ersetzen durch nichts
Ja - `<Leertaste>` meint die Eingabe eines Leerzeichens an dieser Stelle
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Finde Großbuchstaben und setze davor ein Leerzeichen

Beitrag von clag »

Hallo Karolus,

manchmal ist auch der Weg das Ziel ;)
und Skogtroll wollte ja gern etwas formelartig dynamisches da er immer wieder neue "Titel" einfügt.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten