Calc - Stellen mit Nullen auffüllen

Hallo an alle,
habe folgendes Problem und keine Idee wie man es löst.

In einer Spalte stehen folgende Werte:
28/13
250/1
1167
1/153

Diese Werte sollten so geändert werden:

00028/013
00250/001
01167/000
00001/153

usw.

Wie o.g., keine Ahnung wie man das bei einigen hundert Werten bewerkstelligen könnte.

Gruß Peter

Hallo!

Fülle Zelle mit Schreiben von 5 Nullen (String).
Füge Zelle mit Wert von rechts auf (String nicht Integer).
Die übrigen Nullen bleiben dann stehen.

VnG

Bastel Dir ne eigene Funktion:

function MeinFormat(s As string)
   Dim a()
   If Not instr(s, "/") Then s = s & "/"
   a = split(s,"/")
   MeinFormat = format(cint(a(0)),"00000") & "/" & format(cint(a(1)),"000")
End function

dann geht das problemlos;)

VG Thomas

Hallo Thomas,

danke für diese Funktion. Habe diese nach dieser Anleitung:
https://help.libreoffice.org/Calc/User-Defined_Functions/de

in Calc erstellt. Nur wie kann ich diese aufrufen ??
Wie in der Anleitung erklärt funktioniert nicht.

Gruß Peter

Hey Peter,

na, wenn Du sie komplett korrekt abgeschrieben hast und diese in der Standard-Bibliothek entweder im Dokuemnt oder im "Meine Makros" sich befindet - einfach in die Zelle den Funktionsnamen eingeben und als Parameter die Zelle eintragen, in der der bisherige Nummernstring steht. Fertig:)

siehe BIld hier: http://prntscr.com/evwyzz

Viele Grüße

Thomas

Hallo,
man könnte es mit dieser Formel machen:
in A2 steht der vorgegebene Text z.B.: 28/13
in B2 diese Formel: =WIEDERHOLEN("0";9-LÄNGE(A2))&A2
ergibt dann 00028/013

Diese Formel ermittelt die Länge des Textes und füllt dann die fehlenden Stellen vorne mit Nullen auf.

MfG Alois

Hallo Thomas,

ja funktioniert, ich hatte mir nur ein neues "Modul" erstellt da in "Modul 1" schon eine Funktion war.
Aber es scheint nur zu funktionieren wenn man explizit das "Modul 1" verwendet.

Danke nochmal, und schöne Ostern.

Gruß Peter

Nö Alois, mit der Formel nicht;)

   =WIEDERHOLEN("0";9-LÄNGE(A2))&A2

-> ergibt bei der Eingabe 28/13 den Wert: 00028/13

gewünscht wäre aber 00028/013

-> ergibt bei der Eingabe 1167 den Wert: 000001167

gewünscht wäre aber 01167/000

Mit Formel wird das sehr kompliziert - im Extremfall aber sicher machbar.

Viele Grüße Tom

Hallo Alois,

bei mir funktioniert diese Variante nicht ganz so.
Das Ergebnis sieht so aus:

000028/13

Gruß Peter

Hallo Thomas,

sorry, störe noch mal. Wie könnte man diese Funktion in LO/Calc 'fest' Einbauen.
Ich brauche sie doch recht häufig.

Gruß Peter

Hey Peter,

was heisst denn "fest einbauen"?

Wenn Du die Funktion in der Standard-Bibliothek von "Meine Makros" untergebracht hast, ist sie auf deinem Rechner "fest eingebaut":wink: Die geht jetzt in allen Dokumenten.

Willst Du sie fest im Core-Modul unter bringen willst - tia, dann musst Du Entwickler werden und einen entsprechenden Patch einreichen. Allerdings erscheint sie mir dann doch sehr "speziell".

Schließlich könntest Du auch noch ne Extension schreiben mit einer Funktion, dass die Billiothek direkt beim Start von Calc mit geladen wird. Dann kannst Du die selbst pflegen und in allen Varianten (von Lo) installieren.

Viele Grüße

Thomas

Hallo Thomas,

ja hast recht, diese Funktion ist in jeder neu geöffneten Programminstanz enthalten.
Ich hatte angenommen, dass diese Funktion nur in der aktuellen LO-Datei enthalten ist.

Ok, mit Bestem Gruß Peter

Hallo Peter,

ich habe die Aufgabenstellung nicht so genau gelesen, wie ich hätte sollen :wink:
In eine Zelle habe ich es nicht gebracht, aber 2 Spalten reichen - hier ist eine Datei mir der recht unübersichtlichen Formel:
https://app.box.com/s/5m1hp1hp0ebio1d779dqw86x51rs3v67

MfG Alois

Hallo Peter, Alois, *,

ich wollte es genau wissen und habe nun eine Lösung, die die zusätzliche Spalte von Alois nicht braucht:

=WENN(ISTFEHLER(FINDEN("/";A1;1));WIEDERHOLEN("0";5-LÄNGE(A1))&A1&"/000";WIEDERHOLEN("0";6-FINDEN("/";A1;1))&LINKS(A1;FINDEN("/";A1;1))&WIEDERHOLEN("0";3-LÄNGE(A1)+FINDEN("/";A1;1))&RECHTS(A1;LÄNGE(A1)-FINDEN("/";A1;1)))

Wenn kein Schrägstrich gefunden wird, wird an die auf 5 Stellen aufgefüllte Zahl einfach "/000" angehängt. Andernfalls wird das Auffüllen für die beiden Teilstrings, die mit LINKS und RECHTS extrahiert werden, getrennt gemacht; in die dazu notwendige Längenangabe geht jeweils die Position des Schrägstrichs ein.

Allerdings ist Thomas' Funktion viel eleganter.

Gruß

Gerhard

Morgen Alois und Gerhard,

vielen Dank für Deine Mühe. Hätte nicht gedacht das man dieses Problem über die Funktionen lösen kann, sieht "mächtig gewaltig aus".
Trotzdem sehr interessant, man lernt auf jeden Fall dazu.

Gruß Peter