Gruß Arnim
so müßte es klappen:
Tabelle: Tabelle1
In Zelle B14 steht folgende Array-Formel:
{=SUMME(WENN(($C$2:$C$11="a")*($D$2:$D$11=1002);1))}
In Zelle C14 steht folgende Array-Formel:
{=SUMME(WENN(($C$2:$C$11="b")*($D$2:$D$11=1002);1))}
Die geschweiften äußeren Klammern nicht von Hand eingeben, sondern mit
Strg+Shift(Umschalttaste)+Eingabe die Eingabe der Formel bestätigen.
Hilft Dir das?
Ciao MikeS
Ciao MikeS
Sorry!
Arnim
Wenn Du das so haben willst wie unten angezeigt und zwar variabel, dann würde ich an Deiner Stelle ein Makro bemühen das alle "Begriffe" unterhalb nur einmal wiedergibt und auf dem Weg zwischen a b usw. unterscheidet - da muss man dann natürlich etwas VBA können. Ich tät jetzt z.B. das so machen, dass ich bei Klick auf so einen Col-D Wert in einer MessageBox den gefragten Wert sehen könnte.
Wenn's darauf nicht ankommt, würde ich jetzt (sauviele Wege führen nach Rom) die Filterfunktion verwenden und zwar in folgender Weise:
Unter die Tabelle irgendwo:
=TEILERGEBNIS(2;D2:D50) (Wenns bei Zeile 2 anfängt und bei 50 aufhört....)
und dann filtern* nach col-D und nach Typ.
Mit dieser Methode sind dann vielleicht auch noch andere interessante ad-hoc-Analysen drin.
* Ich weiß nicht ob Du's weißt, wenn ja ignoriers:
Zeile mit den Spaltentiteln markieren - Menü Daten - Filter - Autofilter dann zum Auswählen auf die Dropdowns und die entsprechenden Einträge klicken.
Gruß Heinz
Wie Ihr sieht habe ich problemm nicht richtig beschrieben. Mein Fehler.
Noch ein Versuch:
Meine Ausgangstabelle ist sehr, sehr lang (mehrere Tausend Zeilen)
Ich möchte die Einträge aus Ausgangstabelle aus Spalten D, E, F, G
unter Bezug auf Typ in Spalte C in eine andere Tabelle,
beginnend in A10 so hinbekommen wie unten gezeigt:
Col-D Typ a Typ b, Col-E Typ a Typ b, Col-F Typ a Typ b, Col-G Typ a Typ b
(nur eine Spalte dargestellt - Spalte D)
Das soll natürlich mit VBA gelöst werden. Weil ich noch nicht soweit bin, VBA beginner, bitte ich um Euere Hilfe.
Noch einmall, vielen Dank für Ratschläge.
Bis bald Jusuf
Ich bin auch Anfänger, darum ist das Teil langsam, kompliziert usw. aber es funktioniert.
Anbei jeweils Anweisungen zum Erweitern des Programmes für weitere Spalten.
Sub zaehlen()
Dim zaehler1 As Integer
Dim zaehler2 As Integer
Dim merker As String
Dim spalte As Integer
'von hier weg kopieren/anfügen für die Ausgabe zusätzlich gewünschter (3er) Spalten (col-?, typ a, typ b)
spalte = 1 'nach Kopieren/Anfügen ändern in 4, 7, 10
zaehler2 = 11
Tabelle1.Range("d2:d65000").Copy 'genügend großen Bereich kopieren; hier nach Kopieren das d ändern in e, f und g
Tabelle2.Range("a11").PasteSpecial 'einfügen unter Zelle A10; hier nach Kopieren das a ändern in d, g und j
Tabelle2.Range("a11:a65100").SortSpecial 'Sortieren; hier nach Kopieren das a ändern in d, g und j
Do Until Tabelle2.Cells(zaehler2, spalte) = " " Or Tabelle2.Cells(zaehler2, spalte) = "" 'erstes blödes Leerzeichen finden
zaehler2 = zaehler2 + 1 'damit nicht immer alles durchlaufen werden muss
Loop
Tabelle2.Cells(zaehler2, spalte) = "" ' am Ende Zellinhalt löschen für späteres Auffinden des Endes
zaehler2 = 11
merker = Tabelle2.Cells(zaehler2, spalte)
Do Until Tabelle2.Cells(zaehler2, spalte) = "" 'Doppelte Werte rauslöschen
If Tabelle2.Cells(zaehler2 + 1, spalte) = Tabelle2.Cells(zaehler2, spalte) Then
Tabelle2.Cells(zaehler2 + 1, spalte).Delete Shift:=xlUp
zaehler2 = 10
End If
zaehler2 = zaehler2 + 1
Loop
zaehler1 = 2
zaehler2 = 11
Do Until Tabelle2.Cells(zaehler2, spalte) = "" 'beide Tabellen durchlaufen, vergleichen a und b finden/addieren.
Tabelle2.Cells(zaehler2, spalte + 1).Value = 0
Tabelle2.Cells(zaehler2, spalte + 2).Value = 0
Do Until Tabelle1.Cells(zaehler1, 1) = ""
If Tabelle1.Cells(zaehler1, 4) = Tabelle2.Cells(zaehler2, spalte) Then 'hier nach Kopieren/Anfügen den 4er auf 5, 6 bzw. 7 ändern
If Tabelle1.Cells(zaehler1, 3) = "a" Then
Tabelle2.Cells(zaehler2, spalte + 1).Value = Tabelle2.Cells(zaehler2, spalte + 1).Value + 1
ElseIf Tabelle1.Cells(zaehler1, spalte + 2) = "b" Then
Tabelle2.Cells(zaehler2, 3).Value = Tabelle2.Cells(zaehler2, spalte + 2).Value + 1
End If
End If
zaehler1 = zaehler1 + 1
Loop
zaehler2 = zaehler2 + 1
zaehler1 = 2
Loop
'bis hier her kopieren und anfügen sowie ändern wie angezeigt
End Sub
Das löst hoffentlich Dein Problem oder war zumindest Anstoß für Deine eigene Lösung.
Gruß, Heinz
ich entschuldige mich, das ich mich erst jetzt hier melde. Dein Beispiel habe ich runtergeladen und bearbeitete es gerade. Es scheint mir sehr kompliziert zu sein. Das gleiche Problem habe ich auf meine Art gelöst (mit vielen Makros). Mit bitte um Hilfe, habe ich erhofft das ganze mit einem Makro zu lösen. Mit deiner Lösung brauche ich mindestens auch vier Makros. Aber trotzdem vielen Dank für deine Hilfe.
Ich werde versuchen, deine Lösung zu verstehen.
MfG Jusuf