2.9k Aufrufe
Gefragt in Tabellenkalkulation von robert_meinau Einsteiger_in (15 Punkte)
Hallo liebe Gemeinde,

ich habe folgendes Problem. In einer Exceltabelle befindet sich unter anderem folgende Spalte:

http://www.XXXXXXXXXXXX&productNr=36766
http://www.XXXXXXXXXXXX&productNr=38857

mit ca. 10.000 Einträgen. Ich benötige am Ende folgende Aussage:

Zeile: http://www.XXXXXXXXXXXX&productNr=36766 ist 307 mal vorhanden
Zeile: http://www.XXXXXXXXXXXX&productNr=38857 ist 53 mal vorhanden

u.s.w....
Es geht mir ausschließlich um die Produktnummern, die anderen Spalten der Tabelle sind für mich uninteressant.

Für Eure Hilfe schon mal im Voraus herzlichen Dank und ein sonniges WE,

Robert

7 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Robert,

das geht z.B. über die Funktion "ZÄHLENWENN(). Bei Dir würde das für

http://www.XXXXXXXXXXXX&productNr=36766

so aussehen:

="http://www.XXXXXXXXXXXX&productNr=36766 ist "&ZÄHLENWENN(A1:A65536;"http://www.XXXXXXXXXXXX&productNr=36766")&"x vorhanden"

Spalte und Zeilen musst Du logischerweise in der Formel anpassen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von robert_meinau Einsteiger_in (15 Punkte)
Hallo Oliver,

erst mal vielen Dank für Deine schnelle Antwort.

Bei Deiner Lösung müßte ich aber jede der ca. 3000 Produktnummer einzeln abfragen (Wenn ich Deine Antwort richtig verstanden habe?).

Ich brauche aber am Ende eine Spalte, in der mir zuerst alle Dubletten angezeigt werden und dann in einer extra Spalte ausgegeben wird, wie oft diese Dublette vorhanden ist.

z.B.

Dublette |Anzahl

.....31556 |456

(Ich kann hier leider keine Tabelle erstellen :-( )

Viele Grüße,

Robert
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Robert,

in Spalte A stehen die zu zählenden Werte.

Formel B1

=A1

Formel B2

=WENN(SUMME(ZÄHLENWENN(A$1:A$3000;B$1:B1))>=SUMME((A$1:A$3000<>
"")*1);"";INDEX(A:A;VERGLEICH(1;(ZÄHLENWENN(B$1:B1;A$1:A$3000)=0)*(A$1:A$
3000<>"");0)))

Formeleingabe mit Strg+Shift+Enter bestätigen und Formel runter ziehen

Formel C1

=ZÄHLENWENN(A:A;B1)

Formel runter ziehen

Wundere Dich aber nicht, dass diese Matrixformel bei 3000 Werten sehr viel
Rechenzeit benötigt.

Schneller geht es mit dem Spezialfilter.

Spalte mit den Zählwerten markieren, Spezialfilter aufrufen und "Keine Duplikate"
aktivieren.
Auf die gefilterte Liste kannst Du dann die ZÄHLENWENN-Funktion anwenden.

Gruß
Rainer
0 Punkte
Beantwortet von robert_meinau Einsteiger_in (15 Punkte)
Hallo Rainer,

auch Dir erst mal vielen Dank für Deine Hilfsbereitschaft!

Leider kann ich, aus einem tiefen Tal der Unkenntnis heraus, Deinen Ausführungen nicht folgen. Ich habe jetzt seit ca. einer halben Stunde versucht, die Formel einzugeben :-(. Könntest Du mir die Vorgehensweise nochmal so erklären, als ob ich 5 Jahre alt wäre ;-)

Zählen wenn klingt einfach, ich will meine Duplikate aber doch behalten, nur eben von viel nach wenig aufgelistet und von Excel gleich die Anzahl ausgerechnet haben.
Vielleicht drücke ich mich nur laienhaft unverständlich aus, was ich eigentlich will?

Viele Grüße,

Robert
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

da darf ja ein makro nicht fehlen :-))

gruss nighty

quelle
tabelle1 spalte a produkt

ziel
tabelle2 spalte a produkt
tabelle2 spalte b anzahl

Option Explicit
Sub Suchen()
Dim SpAzeile As Long, QuellZeilen As Long, ArrZeilen As Long, ArrIndex As Long
Dim Fund As Boolean
SpAzeile = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
ReDim ArrA(SpAzeile, 1) As Variant
ReDim ArrC(SpAzeile, 2) As Variant
Worksheets(1).Activate
ArrA() = Range("A1:A" & SpAzeile)
Worksheets(2).Activate
Range("A:B") = ""
ArrC() = Range("A1:B" & SpAzeile)
ArrIndex = 1
For QuellZeilen = 2 To SpAzeile
For ArrZeilen = 2 To SpAzeile
If ArrA(QuellZeilen, 1) = ArrC(ArrZeilen, 1) Then
ArrC(ArrZeilen, 2) = ArrC(ArrZeilen, 2) + 1
Fund = True
End If
Next ArrZeilen
If Fund = False Then
ArrIndex = ArrIndex + 1
ArrC(ArrIndex, 1) = ArrA(QuellZeilen, 1)
ArrC(ArrIndex, 2) = ArrC(ArrIndex, 2) + 1
Else
Fund = False
End If
Next QuellZeilen
Worksheets(2).Range("A1:B" & SpAzeile) = ArrC()
End Sub
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Robert,

da ich nicht weiß, wie ich das noch genauer erklären so, hänge ich Dir mal eine Mappe
mit einen Formelbeispiel und eine Filterbeispiel an.

Frage ruhig, was Du daran nicht verstehst.

ul.to/7szd3n

Gruß
Rainer
0 Punkte
Beantwortet von robert_meinau Einsteiger_in (15 Punkte)
Hallo Oliver, Rainer und nighty,

herzlichen Dank für Eure Antworten und die Mühe, die Ihr Euch bei der Beantwortung meiner Frage gemacht habt.

Vielen, vielen Dank!!!!!

Mein ganz besonderer Dank gilt aber nighty, der letztendlich mein Problem zu meiner vollsten Zufriedenheit ;-) gelöst hat. Tolles Ding, dieses Makro!


Mit fröhlichen Grüßen,

Robert
...