Anzeige
Archiv - Navigation
848to852
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
848to852
848to852
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VB-Zählenwenn/CountIF oder ?

VB-Zählenwenn/CountIF oder ?
04.03.2007 10:27:18
Klaus
Hallo Freunde,
ich habe eine ganz harte Nuß zu knacken!
Es sollen alle Zahlen in der Spalte"D" summiert werden(das habe ich geschaft ist hier 1955)
Jetzt soll die Häufigkeit der Zahlen in der Spalte"D" bestimmt werden und entsprechend ihrer Häufigkeit
sortiert werden.zB 200x"1er", 100x"2er", 50x"3er" usw.
Und dann soll die Summe der Häufigkeiten bestimmt werden welche die erste Zahl in der "D" Spalte
vorgibt.(Hier ist es die 2) Also sollte die Summe der ersten zwei Häufigkeiten gebildet werden.
zB. SR(300)= 200"1er" + 100"2er"
Dann folgende Formel berechnet und Ergebnis in D2 eingetragen werden.
Formel: X=((SRx100)/S1)
S1= Summe der Spalte"D" hier 1955
SR= Summe der ersten Häufigkeiten nach vorgabe von der ersten Zahl in der D Spalte
Tabelle2

 ABCDE
1     
2     
3 - 21955
4 - 6 
5 1 1 
6 - 9 
7 - 3 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Habe schon so angefangen: Public Sub Vorhersage() Dim lZeileE As Long Dim lZeileD As Long Dim iSpalte As Integer Dim iAnzahl As Integer lZeileD = 3 With Worksheets("Tabelle2") With .Range("D3:AZ250") .ClearContents .Font.Name = "Arial" End With For lZeileE = 3 To .Range("B65536").End(xlUp).Row If IsNumeric(.Range("B" & lZeileE).Value) Then GoSub Balken Else iAnzahl = iAnzahl + 1 End If Next lZeileE End With Exit Sub Balken: If iAnzahl = 0 Then Return With Worksheets("Tabelle2") .Range("D" & lZeileD).Value = iAnzahl With Sheets("Tabelle2") .Range("E3") = Application.Sum(.Range("D3:D" & .Range("B65536").End(xlUp).Row)) End With End With iAnzahl = 0 lZeileD = lZeileD + 1 Return End Sub Sub xTest() Dim adr As Range Dim Anz As Integer Set adr = Worksheets("Tabelle2").Range("D3:D7000") Anz = Application.WorksheetFunction.CountIf(adr, "1") MsgBox Anz End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VB-Zählenwenn/CountIF oder ?
04.03.2007 11:47:00
Klaus
Hallo Göldi,
das geht nicht weil ich ja keine Vorgaben habe die mir bekannt ist. Die Stückelung wäre da dann die Häufigkeit die ich ja suche.
Gruß Klaus
AW: VB-Zählenwenn/CountIF oder ?
04.03.2007 12:00:00
EtoPHG
Hallo Klaus,
Vielleicht hab ich es jetzt besser verstanden.
Meinst Du so ähnlich:
https://www.herber.de/bbs/user/40833.xls
Gruss Hansueli
AW: VB-Zählenwenn/CountIF oder ?
04.03.2007 12:10:48
Klaus
Ja "Bingo" jetzt hast Du es, die Aufteilung entsprechend der Häufigkeit.
So und wie mach ich das jetzt in mein Formular oder in VB. ? Sehe in Deinem Muster keine Berechnung oder sowas!
Ach die Summe SR also die ersten Häufigkeiten in abhängikeit von der 1ten Zahl in D muß auch noch erstellt werden.
Gruß Klaus und Danke !
Anzeige
AW: VB-Zählenwenn/CountIF oder ?
04.03.2007 12:15:00
EtoPHG
Hallo Klaus,
Da ist alles mit ganz normalen Excelformeln berechnet
Du kannst ja die Werte in D ändern und sehen was passiert.
Die Formeln sind hier abhängig von der Zeile in der sie stehen (Zeile 1 zählt die Einer, Zeile 2 die 2er etc.), aber das kann natürlich so auch auf eine andere Position übertragen werden.
Also kannst Du auch die Formeln entsprechend in Dein Formel übertragen.
Diesen Satz:
Ach die Summe SR also die ersten Häufigkeiten in abhängikeit von der 1ten Zahl in D muß auch noch erstellt werden.
verstehe ich nicht, kannst Du den nochmals erklären.
Gruss Hansueli
Anzeige
AW: VB-Zählenwenn/CountIF oder ?
04.03.2007 12:08:29
Christian
Hallo Klaus,
ohne VBA mit Hilfe von excelformeln.de:
Tabelle1
 DEFGH
1Vorgabe HäufigkeitSumme D3:D..HäufigkeitSummeSumme Häufigkeit
2249312134256
36 9122Ergebnis
41 31195,191644697
59 8116 
63 1114 
71 6104 
86 598 
97 796 
108 495 
Formeln der Tabelle
E2 : =SUMME(D3:D1000)
F2 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F1));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F1)));WENN(ZÄHLENWENN(F$1:F1;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G2 : =WENN(F2=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F2))
H2 : =SUMME(G2:BEREICH.VERSCHIEBEN(G2;D2-1;0))
F3 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F2));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F2)));WENN(ZÄHLENWENN(F$1:F2;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G3 : =WENN(F3=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F3))
F4 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F3));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F3)));WENN(ZÄHLENWENN(F$1:F3;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G4 : =WENN(F4=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F4))
H4 : =(H2*100)/E2
F5 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F4));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F4)));WENN(ZÄHLENWENN(F$1:F4;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G5 : =WENN(F5=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F5))
F6 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F5));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F5)));WENN(ZÄHLENWENN(F$1:F5;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G6 : =WENN(F6=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F6))
F7 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F6));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F6)));WENN(ZÄHLENWENN(F$1:F6;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G7 : =WENN(F7=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F7))
F8 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F7));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F7)));WENN(ZÄHLENWENN(F$1:F7;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G8 : =WENN(F8=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F8))
F9 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F8));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F8)));WENN(ZÄHLENWENN(F$1:F8;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G9 : =WENN(F9=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F9))
F10 : {=WENN(ANZAHL2($D$3:$D$1000)=SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F9));ZEICHEN(160);INDEX($D$3:$D$1000;VERGLEICH(KGRÖSSTE(ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000);1+SUMME(ZÄHLENWENN($D$3:$D$1000;F$1:F9)));WENN(ZÄHLENWENN(F$1:F9;$D$3:$D$1000)=0;ZÄHLENWENN($D$3:$D$1000;$D$3:$D$1000));0)))}
G10 : =WENN(F10=ZEICHEN(160);"";ZÄHLENWENN($D$3:$D$1000;F10))
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
MfG Christian
Anzeige
AW: VB-Zählenwenn/CountIF oder ?
04.03.2007 19:31:08
Klaus
Hallo Christian,
ich bins nochmal. Habe das jetzt eingebaut und getestet und festgestellt daß manchmal falsche Ergebnise
liefert.
Den Grund habe ich auch gefunden und zwar habe ich einen Denkfehler begangen es ist nicht immer der Fall das die Häufigkeit der Zahlen bei 1 am größten ist dann 2 dann 3 usw.
Aber genau das muß so so sein sonst stimmt es nicht möcht Dich daher nochmals um Hilfe bitten.
Kannst Du die Sortierung in der Spalte "Häufigkeit so ändern, daß von 1 beginnend bis ...... zur höchten Zahl Sortiert wird
und wenn keine entsprechende Summe vorhanden ist eine "0" in Summe ausgegeben wird.
Funktioniert jetzt schon wenn ich die Zahlen in der Häufigkeit von Hand eingebe.
Der Rest vom Programm ist Prima und macht das was es soll. Danke nochmals!
Beispiel:Tabelle1

 CDEFGHI
1 Vorgabe HäufigkeitSumme D3:D..HäufigkeitSummeSumme Häufigkeit 
2  27113 
3 2 22Ergebnis 
4 1 3111,11% 
5 2 40  
6 3 51  
7 5 60  
8 7 72  
9 7     
10       
11       


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Klaus
Anzeige
AW: VB-Zählenwenn/CountIF oder ?
04.03.2007 22:17:08
Klaus
Hallo Christian,
habe es jetzt selber gefunden.
Problem gelöst, Danke für Deine Hilfe
Gruß Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige