Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1096to1100
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

Teilbereich eines Arrays summieren

Teilbereich eines Arrays summieren
gothino
Hi,
Gibt's einen direkten Weg (ohne Schleife) einen Teilbereich eines (zweidimensionalen) Zahlenarrays zu summieren?
Ich müsste z.Bsp. die Zeilen eines eines Arrays von der ersten Spalte bis zu einer Spalte n summieren
Den kompletten Array zu summieren funktioniert ja mit
sum = application.sum(array)
Eine Methode einen Teil eines Arrays direkt (also wieder ohne Schleife) in einen passenden (Vektor)Array zu kopieren würde mir also auch helfen
Danke und lg
gothino

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
TeilArray summieren - Workaround...
27.08.2009 13:34:32
NoNet
Hallo Gothino,
direkt im ARRAY kann man das wohl nicht lösen, aber per "Workaround" (wenn das ARRAY nicht mehr Einträge enthält als Excelzeilen zur Verfügung stehen), indem man das ARRAY in ein temp. Tabellenblatt kopiert und dort summiert.
Hier ein Beispiel : Es wird das 3. bis 6. Element eines EINDIMENSIONALEN Arrays summiert :
Sub TeilArraySummieren1()
Dim ar(10), intt As Integer
For intt = 0 To 10
ar(intt) = intt
Next
'MsgBox Application.Sum(ar)
Sheets.Add.[A1].Resize(UBound(ar)) = Application.Transpose(ar)
MsgBox Application.Sum([A1].Offset(3).Resize(4)) 'summiert 3.-6. Array-Element
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
Jetzt schau ich mal, ob das auch für ein 2-Dimensionales ARRAY klappt (mehr Dimensionen sind mit dieser Methode leider nicht möglich ;-)
Gruß, NoNet
Anzeige
AW: TeilArray summieren - Workaround...
27.08.2009 15:02:35
gothino
Danke für den Tipp
glaubst du dass das schneller ist als eine Schleife im Array?
Mir geht's nämlich hauptsächlich um die Geschwindigkeit
Ich weiß auch nicht ob ich nicht irgendwo mehr Zeilen brauche als das Tabellenblatt hat
lg
gothino
Spalte / Zeile aus 2-dim. Array auslösen
27.08.2009 13:59:14
{Boris}
Hi,
du kannst sowohl eine ganze Zeile / Spalte herauslösen. Im folgenden Beispiel Spalte 1.
Option Explicit
Sub test()
Dim arrZweidimensional, arrEindimensional
arrZweidimensional = Range("A1:D7")
With WorksheetFunction
arrEindimensional = .Index(arrZweidimensional, 0, 1)
MsgBox .Sum(arrEindimensional)
End With
End Sub
Ansonsten ist doch eine Schleife innerhalb eines Arrays mega schnell?!
Grüße Boris
Anzeige
AW: Spalte / Zeile aus 2-dim. Array auslösen
27.08.2009 14:57:46
gothino
Danke,
das ist als erster Schritt mal schon sehr hilfreich. Im speziellen müsste ich aber nicht die ganze Zeile sondern nur einen bestimmten Teil der Zeile summieren. Hast du da auch eine Idee?
Ich arbeite mit zig-tausend Datensätzen und da summieren sich diese Schleifen zeitmäßig ordentlich
lg
gothino
AW: Spalte / Zeile aus 2-dim. Array auslösen
27.08.2009 18:22:14
{Boris}
Hi,
imho kann man das nicht anders als mit Schleifen lösen. Vielleicht isses ja dennoch fixer, wenn man nur noch ein eindimensionales Array bearbeitet.
Grüße Boris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige