Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zählen der Werte im Array

Zählen der Werte im Array
KlausD
Hallo!
Ich suche eine Funktion, mit der ich in einem Array die nicht leeren Werte zusammenzählen kann. (Also sowas wie "ANZAHL2" in Excel, aber jetzt halt nicht für Zellen eines Tabellenblattes, sondern für irgendein Array.
Schönen Dank schon mal für alle sachdienlichen Hinweise!
Klaus
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Zählen der Werte im Array: Nachtrag
22.06.2011 08:08:31
KlausD
Hallo nochmal:
Ich vergaß zu schreiben: ich suche die Funktion für VBA.
Klaus
AW: Zählen der Werte im Array: Nachtrag
22.06.2011 08:23:24
Dirk
Hallo!
Zusammenzaehlen aller Werte eines Arrays z.B.so
summe=0
for i = lbound(MainArray) to ubound(meinarray)
Summe=summe+meinarray(i)
next i
gruss
Dirk aus Dubai
AW: Zählen der Werte im Array
22.06.2011 08:10:40
KlausD
Frage noch offen ...
Anzeige
AW: Zählen der Werte im Array
22.06.2011 09:06:39
Rudi
Hallo,
die Gesamtzahl bekommst du mit Application.CountA(Array). In einem einspaltigen Array kannst du das also einfach anwenden.
Wenn du aber nur die Anzahl der Elemente in einer bestimmten Spalte eines mehrspaltigen Arrays brauchst, musst du mit einer Schleife drüber gehen.
Function myCountA(myArr, myColumn)
Dim iCounter As Long
For iCounter = LBound(myArr) To UBound(myArr)
myCountA = myCountA - myarrr(iCounter, myColumn)  ""
Next
End Function

Gruß
Rudi
Anzeige
AW: Zählen der Werte im Array
22.06.2011 10:51:10
Klausd
Hallo, Rudi,
vielen Dank, probier ich gleich aus!
(Das "LBound" und "UBound" sind das erste und letzte Element von meinem Array?)
Schöne Grüße,
Klaus
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte im Array zählen und analysieren in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Anzahl der nicht leeren Werte in einem Array in Excel VBA zu ermitteln, kannst du folgende Schritte ausführen:

  1. Erstelle ein neues VBA-Modul:

    • Öffne Excel, drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Klicke auf Einfügen und wähle Modul.
  2. Definiere das Array:

    • Deklariere und initialisiere dein Array, z.B.:
      Dim meinArray() As Variant
      meinArray = Array(1, "", 3, 4, "")
  3. Zähle die nicht leeren Werte:

    • Verwende eine Schleife und die Funktionen LBound und UBound, um die Werte zu zählen:
      Function CountNonEmptyValues(myArr As Variant) As Long
       Dim count As Long
       Dim i As Long
       count = 0
       For i = LBound(myArr) To UBound(myArr)
           If myArr(i) <> "" Then
               count = count + 1
           End If
       Next i
       CountNonEmptyValues = count
      End Function
  4. Aufruf der Funktion:

    • Um die Funktion zu verwenden, kannst du sie im Hauptteil deines Codes aufrufen:
      Sub TestCount()
       Dim result As Long
       result = CountNonEmptyValues(meinArray)
       MsgBox "Anzahl der nicht leeren Werte: " & result
      End Sub

Häufige Fehler und Lösungen

  • Fehler: "Typ nicht definiert"

    • Lösung: Stelle sicher, dass du das richtige Datentyp-Keyword verwendest, z.B. Dim meinArray() As Variant.
  • Fehler: Schleife durchläuft nicht das gesamte Array

    • Lösung: Überprüfe, ob LBound und UBound korrekt verwendet werden, um die Grenzen des Arrays zu ermitteln.
  • Fehler: Rückgabewert ist nicht korrekt

    • Lösung: Stelle sicher, dass deine Bedingungen in der Schleife (z.B. If myArr(i) <> "") ordnungsgemäß formuliert sind.

Alternative Methoden

Eine weitere Möglichkeit, die Anzahl der Elemente in einem Array zu ermitteln, ist die Verwendung von Application.CountA für eindimensionale Arrays. Zum Beispiel:

Dim count As Long
count = Application.CountA(meinArray)

Für mehrdimensionale Arrays kannst du eine Schleife über die gewünschten Spalten verwenden, wie im folgenden Beispiel:

Function CountColumnValues(myArr As Variant, myColumn As Long) As Long
    Dim count As Long
    Dim i As Long
    count = 0
    For i = LBound(myArr) To UBound(myArr)
        If myArr(i, myColumn) <> "" Then
            count = count + 1
        End If
    Next i
    CountColumnValues = count
End Function

Praktische Beispiele

  1. Eindimensionales Array zählen:

    Dim testArray() As Variant
    testArray = Array("A", "", "C", "D")
    MsgBox CountNonEmptyValues(testArray) ' Gibt 3 zurück
  2. Zählen in einem mehrdimensionalen Array:

    Dim multiArray(1 To 3, 1 To 2) As Variant
    multiArray(1, 1) = "A"
    multiArray(1, 2) = ""
    multiArray(2, 1) = "C"
    multiArray(2, 2) = "D"
    MsgBox CountColumnValues(multiArray, 1) ' Gibt 3 zurück

Tipps für Profis

  • Array-Größe ermitteln: Verwende UBound und LBound, um die Größe eines Arrays dynamisch zu ermitteln.
  • Debugging: Nutze den Debugger im VBA-Editor, um deine Schleifen und Funktionen während der Ausführung zu überwachen.
  • Effizienz: Wenn du mit großen Arrays arbeitest, achte auf die Performance deiner Schleifen und Funktionen.

FAQ: Häufige Fragen

1. Was ist ein Array in Excel VBA?
Ein Array ist eine Datenstruktur, die es ermöglicht, mehrere Werte unter einem einzigen Variablennamen zu speichern. In VBA kannst du eindimensionale und mehrdimensionale Arrays verwenden.

2. Wie kann ich die Größe eines Arrays in VBA ermitteln?
Du kannst die Funktionen LBound und UBound verwenden, um die untere und obere Grenze eines Arrays zu bestimmen.

3. Gibt es eine eingebaute Funktion, um die Anzahl der Elemente in einem Array zu zählen?
Nein, es gibt keine direkte eingebaute Funktion. Du musst eine eigene Funktion schreiben, um die Anzahl der nicht leeren Werte zu zählen, wie in den obigen Beispielen gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige