Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
328to332
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
328to332
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Treffer zählen

Treffer zählen
28.10.2003 20:13:12
Milan
Hallo liebe Excel Helfer,
folgende Aufgabe:

Wie offt befindet sich (Treffer) die Zahlengruppe
von A1 bis C1 in der Zahlengruppe
von H1 bis N10

Im Voraus vielen Dank
Milan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Treffer zählen
28.10.2003 20:44:57
PeterW
Hallo Milan,

meinst du das so?
=ZÄHLENWENN(H1:N10;A1)+ZÄHLENWENN(H1:N10;B1)+ZÄHLENWENN(H1:N10;C1)

Gruß
Peter
AW: Treffer zählen
28.10.2003 22:39:47
Milan
Hallo Peter,
nicht ganz optimal.

Noch genauer die Aufgabe:
A1=1 B1=2 C1=3
In H1 bis N10 sind Zahlenreihen je 7 Zahlen

Wie oft befindet sich die Zahlengruppe (zusammenhängend)1,2,3
im Bereich H1 bis N10.

Danke für die Mühe

Gruß
Milan
AW: Treffer zählen
28.10.2003 22:47:46
PeterW
Hallo Milan,

eine Antwort kann höchstens so optimal sein, wie die Aufgabenstellung. ;-)

Was meinst du jetzt mit zusammenhängend, in einer Zeile? Kann eine Zahl mehrfach vorkommen? Bedenke bitte, dass hier keiner deine Tabelle sehen kann (es sei denn du lädst sie auf den Server).

Gruß
Peter
Anzeige
AW: Treffer zählen
28.10.2003 23:07:11
Milan
Hallo Peter,
habe zwischendurch experimentiert,
und es funktioniert, die Formel kann ich so schön runterziehen.
Übung macht den halben Meister:)

{=SUMME(ZÄHLENWENN(A1:C1;$H$1:$N$10))}

Gruß
Milan
AW: Treffer zählen
28.10.2003 23:32:23
Milan
Hallo Peter,
hilfe die Formel ist richtig, aber.

In Spalte A B C geht es bis 18000 Zeilen
und im Bereich H bis N geht es bis 20000 Zeilen.
So, Excel braucht 15 Minuten bis er bei 5% ist.

Gibt es ein Makro mit dem ich die Werte in Spalte E
hinein bekomme?
Anbei als Anhang meine Problemtabelle.

Gruß
Milan

Anzeige
wo ist der Anhang?.....
28.10.2003 23:44:52
PeterW
... aus dem hoffentlich die genaue Aufgabenstellung ersichtlich wird. :-)
AW: Treffer zählen
29.10.2003 01:03:59
PeterW
Hallo Milan,

ob das mit VBA auf herkömmlichen Rechnern wesentlich schneller geht wage ich zu bezweifeln. Bei 20.000 Zeilen á 7 Werten müssen schon 140.000 Werte verglichen werden, jeweils mit 3 Werten aus den Spalten A bis C, also 420.000 Berechnungen (ohne die Additionen der Treffer) und das dann noch für 18.000 Zeilen der Spalten A bis C ergibt ca. 7,5 Mrd. Berechnungen.

Langer Rede kurzer Sinn: damit dürfte Excel - wenn man das Ergebnis schnell haben will - überfordert sein. Wenn du das Ergebnis benötigst (was dann bestimmt auch noch weiter ausgewertet werden soll) lass den Rechner eine "Nachtschicht" einlegen und schalte unter Extras - Optionen - Berechnen auf Manuell.

Gruß
Peter
Anzeige
AW: Treffer zählen
29.10.2003 02:28:54
Reinhard
Hi Milan,
ich hab mir mit dem ersten Makro (Fuellen) deine tab mal mit 20000 Zeilen nachgestellt.
Ohne Überprüfung ob da Zahlen doppelt sind, denn das spielt ja erstmal keine Rolle, da es um Spalte E geht.

Danach die beiden anderen Makros, die du benutzen kannst, füllen die Spalte E mit den Werten auf, das braucht dann zusammen so 2-4 Minuten. Erst HilfsSpaltenErzeugen aufrufen, dann Spalte-E-füllen aufrufen.
In den Hilfspalten steht drin wie oft die Zahlen 1-49 jeweils im siebenspaltigen Bereich vorkommen.
Gruß
Reinhard


Sub Fuellen()
'ca. 12 Minuten
Application.ScreenUpdating = False
For n = 1 To 20000
Cells(n, 1) = Int(Rnd * 49) + 1
Cells(n, 2) = Int(Rnd * 49) + 1
Cells(n, 3) = Int(Rnd * 49) + 1
Cells(n, 8) = Int(Rnd * 49) + 1
Cells(n, 9) = Int(Rnd * 49) + 1
Cells(n, 10) = Int(Rnd * 49) + 1
Cells(n, 11) = Int(Rnd * 49) + 1
Cells(n, 12) = Int(Rnd * 49) + 1
Cells(n, 13) = Int(Rnd * 49) + 1
Cells(n, 14) = Int(Rnd * 49) + 1
Next n
Application.ScreenUpdating = True
End Sub



Sub HilfsspaltenErzeugen()
' ca 2 Minuten
Application.ScreenUpdating = False
'Dim z(49) As Long
For n = 1 To 49
Cells(n, 20) = n
Zähler = 0
With Range(Cells(1, 8), Cells(20000, 14))
Set ze = .Find(What:=n, LookAt:=xlWhole, MatchCase:=True)
If Not ze Is Nothing Then
Adresse = ze.Address
Do
Zähler = Zähler + 1
Set ze = .FindNext(ze)
Loop While Not ze Is Nothing And ze.Address <> Adresse
End If
Cells(n, 21) = Zähler
End With
Next n
Application.ScreenUpdating = True
End Sub



Sub Spalte_E_Fuellen()
' ca 2 Minuten
Application.ScreenUpdating = False
Dim z(49) As Long
For n = 1 To 49
z(n) = Cells(n, 21)
Next n
For n = 1 To 20000
Cells(n, 5) = z(Cells(n, 1).Value) + z(Cells(n, 2).Value) + z(Cells(n, 3).Value)
Next n
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Treffer zählen
29.10.2003 00:04:11
IngoG
Hallo Milan,
IMO ist Peters 1. antwort richtig

einfach

=ZÄHLENWENN($G$1:$M$10;A1)+ZÄHLENWENN($G$1:$M$10;B1)+ZÄHLENWENN($G$1:$M$10;C1)

in die zelle e1 schreiben und runterkopieren.
da es keine Matrixfunktion ist arbeitet sie wahrscheinlich viel schneller

Gruß Ingo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige