Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

"Verdoppeln" eines Vektors?

"Verdoppeln" eines Vektors?
02.12.2012 15:56:41
Bernhard
Hallo Forum
Ich muss oft eine Liste (Vektor) von bekannter Länge verdoppeln, d.h. z.B. aus
0; 5; -2; 8.1
die Liste
0; 0; 5; 5; -2; -2; 8.1; 8.1
generieren. Bis jetzt habe ich immer VBA bemüht. Geht das aber auch mit "bordeigenen" Mitteln elegant und schnell?
Danke für jeden Tipp!
Bernhard Grütter

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Verdoppeln" eines Vektors?
02.12.2012 16:03:24
Hajo_Zi
Hallo Bernhard,
Tabelle3
 ABCDE
405'-2' 8.1 
50055-2

verwendete Formeln
Zelle Formel Bereich
A5 =INDIREKT(ADRESSE(4;AUFRUNDEN(SPALTE()/2;0))) 
B5 =INDIREKT(ADRESSE(4;AUFRUNDEN(SPALTE()/2;0))) 
C5 =INDIREKT(ADRESSE(4;AUFRUNDEN(SPALTE()/2;0))) 
D5 =INDIREKT(ADRESSE(4;AUFRUNDEN(SPALTE()/2;0))) 
E5 =INDIREKT(ADRESSE(4;AUFRUNDEN(SPALTE()/2;0))) 

Tabellendarstellung in Foren Version 5.50



Anzeige
AW: "Verdoppeln" eines Vektors?
02.12.2012 17:01:29
Bernhard
Hallo Hajo
Danke für die helfende Antwort. Da bei mir die Liste schon mal 10'000 Einträge haben kann, ist die Performance auch ein Kriterium. Wie siehst du den Zeitbedarf deiner Lösung, verglichen mit der folgenden VBA Lösung?
For RowIndex = 1 to 10000
Range(Cells(2 * RowIndex - 1, 2), Cells(2 * RowIndex, 2)) = Cells(RowIndex, 1)
Next
Gruss
Bernhard

AW: "Verdoppeln" eines Vektors?
02.12.2012 17:14:52
Hajo_Zi
Hallo Bernhard,
indirekt ist lahm, aber es wurde ja Extra eine Lösung ohne VBA gefordert.
Gruß Hajo

Anzeige
AW: "Verdoppeln" eines Vektors?
02.12.2012 17:31:58
ransi
Hallo
Versuch mal was dieses:
Tabelle1

 AB
16565
212365
383123
448123
59683
61283
7848
82348
94096
10096
11112

Formeln der Tabelle
ZelleFormel
B1=INDEX($A$1:$A$10000;AUFRUNDEN(ZEILE()/2;0))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Sollte um einiges schneller sein als indirekt()
ransi

Anzeige
AW: "Verdoppeln" eines Vektors?
02.12.2012 17:42:54
ransi
HAllo Bernhard
Eine schnelle VBA-Lösung ist z.B. sowas:
Option Explicit

Sub machs()
    Dim rowIndex As Long
    Dim lngCount As Long
    Dim arrIn As Variant
    Dim arrOut As Variant
    With Sheets("Tabelle1")
        arrIn = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
        Redim arrOut(1 To UBound(arrIn) * 2, 1 To 1)
        For rowIndex = 1 To UBound(arrIn)
            lngCount = lngCount + 1
            arrOut(lngCount, 1) = arrIn(rowIndex, 1)
            lngCount = lngCount + 1
            arrOut(lngCount, 1) = arrIn(rowIndex, 1)
        Next
        .Range("B1:B" & lngCount) = arrOut
    End With
End Sub


ransi

Anzeige
AW: "Verdoppeln" eines Vektors?
02.12.2012 19:07:56
Bernhard
Hallo ransi
Interessante Lösung, vor allem auch dein anderes Posting, danke. Da kenn ich mich gar nicht aus: Ist denn das sukzessive Überschreiben von Excel-Zellen (wie von mir vorgeschlagen) viel langsamer als das Schreiben eines ganzen Bereichs "in einem Rutsch"?
Bernhard

AW: "Verdoppeln" eines Vektors?
02.12.2012 20:52:29
ransi
HAllo
als das Schreiben eines ganzen Bereichs "in einem Rutsch"
Ich kenne nichts schnelleres.
Wenn du jede Zelle einzeln beschreibst passiert (im Normalfall) jedesmal folgendes:
Excel wird komplett neu berechnet.
Der Bildschirm aktualisiert sich.
Bestimmte Ereignissmakros werden angestossen.
Das kann man zwar alles abstellen, aber "das Schreiben eines ganzen Bereichs "in einem Rutsch"" ist dann immer noch deutlich schneller.
ransi
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige