Hilfe!!!

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: Alle Versionen
nach unten

Betrifft: Hilfe!!!
von: Jusuf
Geschrieben am: 23.06.2002 - 15:16:37

Halo Forum,

Meine Ausgangstabelle sieht so aus:

MS Excel von Jusuf
 ABCDEFG
1DatumNrTypCol-DCol-ECol-FCol-G
201.06.02658a    4102
301.06.021a7004   
401.06.02593a      Limo
501.06.029b  4008 
601.06.0217b  9008 
701.06.02452b      Apfel
801.06.02589b7004   
902.06.0233a  4008 
1002.06.0256a1002   
1102.06.0269a7004   
1202.06.02256a1002   
1302.06.02339a      Apfel
1402.06.02346a7001   
1502.06.02348a  4008 
1602.06.02466a  800? 
1702.06.02565a7004   
1802.06.02674a    5504
1902.06.0286b      Apfel
2002.06.02336b  2001 
2102.06.02344b  6008 
2202.06.02567b      Limo
2303.06.026a7015   
2403.06.02262a  4008 
2503.06.02308a  4008 
2603.06.02331a    4140
2703.06.02363a  4008 
2803.06.02405a  8010 
2903.06.02427a  6001 
3003.06.02585a      Apfel
3103.06.02602a7001   
3203.06.02652a    5510
3303.06.02658a    4402
3403.06.02686a7001   
3503.06.02302b  7001 
3603.06.02309b1002   
3703.06.02454b      Apfel
3804.06.02216a  3001 
3904.06.02289a1002   
4004.06.02308a    9340
4104.06.02318a      Limo
4204.06.02332a      fest
4304.06.02339a      Limo
4404.06.02348a      Schacht
4504.06.02427a  6001 
4604.06.02623a7083   
4704.06.02674a    5204
4804.06.026a7015   
4904.06.0217b7049   
50      


Wie viel mal sind Einträge in Spalte Col-D unter Bezug auf Einträge Typ in Spalte C vorhanden? z.B. so wie unten gezeigt?


Col-D    Typ a Typ b
1002       3    1
7001       3
7004       3    1
7015       2
7049            1
7083       1

Wie soll ich vorgehen? Hat jemand eine idee?
Vielen Dank im Voraus.

mfg Jusuf







nach oben   nach unten

FUNKTION ZÄHLENWENN o.t.
von: th.heinrich
Geschrieben am: 23.06.2002 - 15:59:43

.

nach oben   nach unten

Re: Hilfe!!!
von: Arnim
Geschrieben am: 23.06.2002 - 16:14:38

Hallo Jusuf,
mach's mal so:
in I1 schreibst Du a (für Typ a); in J1: b
in H2 Col-Nr.: 1002, in H3: 7001, H4: 7004 ....usw.
In I2 Array-Formel: =SUMME(($D2:$D100=$H2)*($C2:$C100=I$1))
Eingabe mit Strg/Shift/Enter
Formel nach unten und nach rechts kopieren.
Ist Dir die Array-Formel nicht sympatisch, dann nimm Formel:
=SUMMENPRODUKT(($D2:$D100=$H2)*($C2:$C100=I$1))
normale Eingabe mit Enter.

Gruß Arnim

nach oben   nach unten

Matrixformel
von: MikeS
Geschrieben am: 23.06.2002 - 16:22:52

Hallo Jusuf,

so müßte es klappen:

Tabelle: Tabelle1

 ABCD
1DatumNrTypCol-D
201.06.02 a1002
301.06.02 b1002
401.06.02 c 
501.06.02 a1002
601.06.02 a 
701.06.02 a 
801.06.02 b1002
902.06.02 b 
1002.06.02 b 
1102.06.02 a1002
12    
13Col-DAnzahl Typ aAnzahl Typ b 
14100232 

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

nach oben   nach unten

Re: Hilfe!!!
von: Arnim
Geschrieben am: 23.06.2002 - 16:30:38

Hallo,
war etwas unvollkommen; Zellbezüge mussen zeilenmäßig absolut sein:
=SUMME(($D$2:$D$100=$H2)*($C$2:$C$100=I$1))
oder:
=SUMMENPRODUKT(($D$2:$D$100=$H2)*($C$2:$C$100=I$1))

Sorry!
Arnim

nach oben   nach unten

Re: FUNKTION ZÄHLENWENN o.t.
von: Heinz Franz Posch
Geschrieben am: 23.06.2002 - 17:25:29

Kommt auch immer darauf wie man diese Daten ausgeben will und welche Vorraussetzungen herrschen. Gibt's nur a und b? Brauchst Du alle Ergebnisse auf einmal oder nur auf Knopfdruck eines dieser Ergebnisse?

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



nach oben   nach unten

Re: FUNKTION ZÄHLENWENN o.t.
von: Jusuf
Geschrieben am: 23.06.2002 - 20:48:33

Sorry an euch alle!

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)


Col-D Typ a Typ b
1002    3    1
7001    3
7004    3    1
7015    2
7049    1
7083    1


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

nach oben   nach unten

Beispiel
von: Heinz Franz Posch
Geschrieben am: 24.06.2002 - 13:52:13

Hallo 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

nach oben   nach unten

Re: Beispiel
von: Jusuf
Geschrieben am: 25.06.2002 - 22:09:20

Hallo Heinz Franz,

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


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Anzeige der Formel"