Das Clever-Excel-Forum.de - Treffen
... 14.-16. September 2018 im Allgäu ...

Verschiedene Werte in einer Matrix zählen.
#1
Hallo.

Ich habe 2160 Zeilen und 4096 Spalten (die 4096. Spalte ist die Spalte "FAN").

Nun möchte ich zählen wie viele unterschiedliche Werte sich in diesem Bereich befinden.
In jedem Feld steht ein Wert und die Werte gehen von 0 - 65355.

Gruß und vielen Dank im Voraus.
to top
#2
Hallo,

so:

Code:
=SUMME((HÄUFIGKEIT(A2:FAN2160;A2:FAN2160)>0)*1)

Quelle: http://www.excelformeln.de
Gruß Atilla
to top
#3
Danke erstmal,

leider hängt sich bei mir Excel dann auf wenn ich die 8,8 Millionen Werte miteinander vergleichen will :/
Gibt's noch irgend eine ressourcensparendere Methode?
to top
#4
Hallo,

Du durchsuchst immerhin 8,8 Mio. Zellen! Könntest Du vielleicht VBA verwenden? Wenn ja, mache es mal so.

Code:
Sub prcZahlenzaehlen()
   Dim objDic As Object
   Dim rngZelle As Range
  
   Set objDic = CreateObject("Scripting.Dictionary")
  
   For Each rngZelle In Range("A2:FAN2160")
      objDic(rngZelle.Value) = 1
   Next rngZelle
   MsgBox objDic.Count
  
   Set objDic = Nothing
End Sub
Gruß Stefan
Win 7 / Office 2007
to top
#5
Hi,

oder so:

Code:
Sub UnikateErmitteln()
Dim objDic As Object
Dim zelle As Range
  
Set objDic = CreateObject("Scripting.Dictionary")
  
With ActiveSheet
    For Each zelle In .Range("A2:FAN2160")
    
    If Not objDic.Exists(zelle.Value) Then
        If IsEmpty(zelle.Value) = False Then
            objDic.Add zelle.Value, zelle.Value
        End If
    End If
  
    Next zelle
    
    MsgBox "Es befinden sich " & objDic.Count & " Unikate im Bereich."
End With

Set objDic = Nothing

End Sub

Gruß
Max
to top
#6
Bin ziemlicher Noob in VBA.

Steffl, du hast "End Sub" vergessen oder?

mit End Sub hats funktioniert, und es spuckt mir eine Zahl aus, danke!
to top
#7
Ahh mein Fehler, der Code ging ja noch weiter Tongue
to top
#8
Funktioniert beides, ich danke euch!
to top
#9
Hallo,

wobei ich bei den beiden VBA-Codes unterschiedliche Ergebnisse erhalte.

Bei diesem Tabellenaufbau

Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
1  
2ab
3ac
4a 
5b 
6  
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

gibt der Code von Steffl das Ergebnis 4 aus und der Code von Max das Ergebnis 3, wobei ich bei beiden Codes den Bereich auf A2:B10 geändert habe.
Gruß
Peter
to top
#10
Hallo Peter,

das liegt darn, dass der Code von Stefan auch Leerzellen berücksichtigt.
Auch wenn der TS schrieb, jede Zelle sei gefüllt, habe ich diese Prüfung
trotzdem noch mit eingebaut.

Da in Deinem Bereich auch Leerzellen enthalten sind, erhältst Du einen Treffer mehr.

Gruß
Max
to top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste