Zahlen in Zahlenfolge hinzufügen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zahlen in Zahlenfolge hinzufügen

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » So, 19.07.2020 14:54

Perfekt. Ich danke dir !

Re: Zahlen in Zahlenfolge hinzufügen

von F3K Total » So, 19.07.2020 08:56

Moin,
so geht es, die Daten (Mehrzahl von Datum) werden in Spalte I eingesetzt:

Code: Alles auswählen

Sub S_INSERT_NUMBERS
    dim i as long
    t1 = Getsystemticks()
    oSheet = ThisComponent.Sheets.Getbyname("Sheet1")
    oDataSourceRange = oSheet.getcellrangebyName("H1:H60000")'hier den zu untersuchenden Bereich eintragen
    oDataTargetRange = oSheet.getcellrangebyName("I1:I120000")'Doppelt so lang
    oDataRangeSourcedata = oDataSourceRange.dataarray
    oDataRangeTargetdata = oDataTargetRange.dataarray
    oRange1 = oSheet.getcellrangebyName("K1:K60000")'hier den zu untersuchenden Bereich eintragen
    oRange1data = oRange1.dataarray
    oRange2 = oSheet.getcellrangebyName("L1:L60000")'hier den zu untersuchenden Bereich eintragen
    oRange2data = oRange2.dataarray
    oRangeTarget = oSheet.getcellrangebyName("M1:M120000")'Doppelt so lang wie Spalte K
    oRangeTargetdata = oRangeTarget.dataarray
    nCounter = 0
    For i = 0 to oRange1.rows.Count -1
        oRangeTargetdata(nCounter+i)(0)= oRange1data(i)(0)
        oDataRangeTargetdata(nCounter+i)(0) = oDataRangeSourcedata(i)(0)
        if oRange2data(i)(0) <> "" then
            nCounter = nCounter+1
            oRangeTargetdata(nCounter+i)(0) = oRange2data(i)(0)
            oDataRangeTargetdata(nCounter+i)(0) = oDataRangeSourcedata(i)(0)
        endif
    next i 
    oRangeTarget.SetDataarray(oRangeTargetdata)
    oDataTargetRange.SetDataarray(oDataRangeTargetdata)
    t2 = Getsystemticks()
    msgbox "Fertig, Dauer: " & (t2-t1)/1000 &" s"
End Sub
Gruß R
Dateianhänge
Zahlenfolge Renko F3K.ods
(201.63 KiB) 62-mal heruntergeladen

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Sa, 18.07.2020 16:11

Hallo R,
bei mir hat es auch 2,8 Sekunden gedauert. Echt Klasse wie das funktioniert!
Ich bin begeistert.
Nun habe ich leider ein weiteres Problem. Ich würde mich freuen, wenn du mir nochmal hilfst.
Für Spalte K gab es für jede Zelle ein passendes Datum. Dadurch das ja nun Zahlen aber hinzugekommen sind und sich alles verschiebt, fehlt mir dieses Datum in der neuen Zahlenfolge. Im Anhang findest du meine Tabelle.
Dateianhänge
Zahlenfolge Renko.ods
(300.93 KiB) 60-mal heruntergeladen

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Sa, 18.07.2020 13:51

Mit den 60.000 Zahlen hatte ich es noch nicht probiert, nur mit 10 Zahlen zum Testen.
Das fande ich schon cool :D
Vielen vielen Dank R, das schaue ich mir in Ruhe später an.
Erstmal was essen :)

Re: Zahlen in Zahlenfolge hinzufügen

von F3K Total » Sa, 18.07.2020 13:14

Moin,
und nochmal verbessert, das folgende Makro läuft bei mir in 2,8 s durch 60000 Zeilen.

Code: Alles auswählen

Sub S_INSERT_NUMBERS
    dim i as long
    t1 = Getsystemticks()
    oSheet = ThisComponent.Sheets.Getbyname("Tabelle1")
    oRange1 = oSheet.getcellrangebyName("K1:K60000")'hier den zu untersuchenden Bereich eintragen
    oRange1data = oRange1.dataarray
    oRange2 = oSheet.getcellrangebyName("L1:L60000")'hier den zu untersuchenden Bereich eintragen
    oRange2data = oRange2.dataarray
    oRangeTarget = oSheet.getcellrangebyName("M1:M120000")'Doppelt so lang wie Spalte K
    oRangeTargetdata = oRangeTarget.dataarray
    nCounter = 0
    For i = 0 to oRange1.rows.Count -1
        oRangeTargetdata(nCounter+i)(0)= oRange1data(i)(0)
        if oRange2data(i)(0) <> "" then
            nCounter = nCounter+1
            oRangeTargetdata(nCounter+i)(0) = oRange2data(i)(0)
        endif
    next i 
    oRangeTarget.SetDataarray(oRangeTargetdata)
    t2 = Getsystemticks()
    msgbox "Fertig, Dauer: " & (t2-t1)/1000 &" s"
End Sub
Beispiel anbei.
Damit das Makro laufen darf, stellst du unter Extras/Einstellungen/OpenOffice/Sicherheit/Makrosicherheit oder Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.

Gruß R
Dateianhänge
Nummern_einfügen.ods
(208.62 KiB) 70-mal heruntergeladen

Re: Zahlen in Zahlenfolge hinzufügen

von F3K Total » Sa, 18.07.2020 12:42

Moin,
was bedeutet "Ziemlich cool!" Hast du es schon mit deinen 60000 Zeilen ausprobiert?
Wohl nicht, denn es gibt eine Fehlermeldung.
Daher habe ich das Makro weiter verbessert:

Code: Alles auswählen

Sub S_INSERT_NUMBERS
    dim i as long
    t1 = Getsystemticks()
    oSheet = ThisComponent.Sheets.Getbyname("Tabelle1")
    oRange1 = oSheet.getcellrangebyName("K1:K60000")
    oRange2 = oSheet.getcellrangebyName("L1:L60000")
    oRangeTarget = oSheet.Columns.getbyName("M")
    nCounter = 0
    For i = 0 to oRange1.rows.Count -1
        oRangeTarget.getCellByPosition(0,nCounter+i).Value = oRange1.getCellByPosition(0,i).Value
        if oRange2.getCellByPosition(0,i).Value > 0 then
            nCounter = nCounter+1
            oRangeTarget.getCellByPosition(0,nCounter+i).Value = oRange2.getCellByPosition(0,i).Value
        endif
    next i  
    t2 = Getsystemticks()
    msgbox "Fertig, Dauer: " & (t2-t1)/1000 &" s"
End Sub
Nicht ungeduldig werden, bei mir läuft es über 60000 Zeilen etwa 66 Sekunden, kann je nach Rechner mehr oder weniger werden.
Gruß R

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Sa, 18.07.2020 10:54

Hallo R,

ich nutze zum ersten Mal ein Makro. Ziemlich cool! Vielen Dank :)

Re: Zahlen in Zahlenfolge hinzufügen

von F3K Total » Sa, 18.07.2020 10:46

Moin,
habe dir ein kurzes Makro geschrieben:

Code: Alles auswählen

Sub S_INSERT_NUMBERS
    oSheet = ThisComponent.Sheets.Getbyname("Tabelle1")
    oRange1 = oSheet.getcellrangebyName("K1:K10")
    oRange2 = oSheet.getcellrangebyName("L1:L10")
    oRangeTarget = oSheet.Columns.getbyName("M")
    nCounter = 0
    For i = 0 to uBound(oRange1.data)
        oRangeTarget.getCellByPosition(0,nCounter+i).Value = oRange1.getCellByPosition(0,i).Value
        if oRange2.getCellByPosition(0,i).Value > 0 then
            nCounter = nCounter+1
            oRangeTarget.getCellByPosition(0,nCounter+i).Value = oRange2.getCellByPosition(0,i).Value
        endif
    next i  
End Sub
Gruß R

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Sa, 18.07.2020 10:24

Ich hatte gestern Abend noch selber versucht eine eigene Lösung zu finden.
Ich habe die Zahlen in eine Zelle gepackt und durch Suchen & Ersetzen die Zahlen 12 und 21 ausgetauscht.
Suche 12 ersetze durch 122, suche 21 ersetze durch 211.
Das hat wunderbar geklappt! Allerdings bekomme ich nun die Zahlen die in dieser Zelle sind nicht mehr in eine Spalte.
Dadurch das es sich hierbei um 60.000 Zahlen handelt, kann ich Transponieren nicht verwenden, da es zu wenig Spalten sind.
Im Anhang findet ihr diese Zahlen, nicht wundern. Das x habe ich als Trenner genutzt.
Auch wenn ich schon eine Lösung habe, würde mich das interessieren. Jemand eine Idee?
Dateianhänge
Zelle.ods
(9.66 KiB) 62-mal heruntergeladen

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Fr, 17.07.2020 20:42

Super, jetzt verstehe ich. Dankeschön!

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Fr, 17.07.2020 15:49

Im Anhang als Datei mit deiner Formel.

Datenbereich anpassen?
Dateianhänge
Error.ods
(10.7 KiB) 63-mal heruntergeladen

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Fr, 17.07.2020 15:21

Hallo Holger, vielen Dank, allerdings gibt es ein Problem. Es handelt sich hierbei um knapp 60.000 Zahlen
Die Hilfsspalte wird also irgendwann viel zu groß.

Hallo Gast, auch wenn ich die Formel überhaupt nicht verstehe, klappt sie super. Dankeschön.
Allerdings gibt es auch hier ein Problem, sobald die Zahlenfolge z.B. aus mehreren Einsen besteht, zeigt er mir Error an. (siehe Bild)

Gibt es die Möglichkeit, automatisch die Zellen immer um eins nach unten zu verschieben, damit eine Lücke entsteht?
Dann würde es sehr einfach sein.
Dateianhänge
error Zahlenfolge.PNG
error Zahlenfolge.PNG (48.61 KiB) 2789 mal betrachtet

Re: Zahlen in Zahlenfolge hinzufügen

von echo » Fr, 17.07.2020 14:19

Von mir eine Version mit Hilfsspalte zum ausblenden.
Die Zahlenreihe wird in einer weiteren Spalte erzeugt

In ein und der selben Spalte die Eingaben der Zahlen und dazwischen Formeln zu packen funktioniert mE nicht.
Gruß Holger
Dateianhänge
Unbenannt 1.ods
(11.46 KiB) 67-mal heruntergeladen

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Fr, 17.07.2020 13:54

So, im Anhang findest du nun ein Berechnungsbeispiel.
Um das aber so in meiner richtigen Tabelle zu machen, müsste ich jede Zeile nach unten verschieben, so dass immer Luft bleibt.
Dateianhänge
Beispiel Zahlenfolge.ods
(9.5 KiB) 68-mal heruntergeladen

Re: Zahlen in Zahlenfolge hinzufügen

von Muellermilch90 » Fr, 17.07.2020 13:27

Bitte nicht so kompliziert denken Holger. Ich versuche es nochmal zu erklären.
Stell dir vor du hast diese Zahlenfolge, keine Formel, nur Zahlen. Woher auch immer diese kommen, ist völlig egal.

1 2 1 1 2 2 2

Immer wenn du eine 12 siehst soll diese zu 122 erweitert werden, immer wenn du eine 21 siehst soll diese zu 211 erweitert werden.

Die oben genannte Zahlenfolge soll dann so aussehen:

1 2 2 1 1 1 2 2 2 2

Das ist alles. Ich hoffe du verstehst mich jetzt :)

Nach oben