Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
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
Inhaltsverzeichnis

Zählenwenn in VBA nachgebaut

Zählenwenn in VBA nachgebaut
25.10.2015 21:12:15
PQuest:-)
Hallo,
ich habe einen Wert in einer Tabellenzelle. Diesen Wert möchte ich nun mit den Werten in einer anderen Tabelle vergleichen. Daran scheitere ich schon :-(
In der angefügten Tabelle habe ich das Problem etwas näher erläutert. Grundsätzlich ist das ein Fall für Countif(). Allerdings haben die Zellen unterschiedliche Wertigkeiten und am Ende wird der Counter ausgewertet und...und...und
Ich hatte mir überlegt, den Wert aus der ersten Tabelle (Cal) an eine Variable zu übergeben, dann die Vergleichstabelle (LoP) zeilenweise zu durchlaufen (siehe händisches Beispiel) und am Ende den ermittelten Wert weiter zu verwenden.
Vielleicht kann mir jemand zumindest mit dem Grundgerüst auf die Sprünge helfen.
Gruß,
PQuest:-)
PS: Tabellenstruktur ist vorgegeben und kann nicht geändert werden.
https://www.herber.de/bbs/user/101032.xlsx

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

Betreff
Datum
Anwender
Anzeige
AW: Zählenwenn in VBA nachgebaut
25.10.2015 21:57:32
Daniel
Hi
als Funktion könnte dein Code so aussehen:
Function P_Quest(Einzeldatum, Datumsbereich As Range, SpaltenWertigkeit As Range) As Double
Dim arrBereich
Dim arrWert
Dim z As Long, s As Long
Dim Wert As Double
arrBereich = Datumsbereich.Value
arrWert = SpaltenWertigkeit.Value
For z = 1 To UBound(arrBereich, 1)
Wert = 0
For s = 1 To UBound(arrBereich, 2)
If arrBereich(z, s) = Einzeldatum Then _
Wert = WorksheetFunction.Max(Wert, arrWert(1, s))
Next
P_Quest = P_Quest + Wert
Next
End Function
kannst du dann in einer Zelle als Formel verwenden:
=P_Quest(Cal!A3;LoP!B3:F6;LoP!B10:F10)
Gruss Daniel

Anzeige
AW: Zählenwenn in VBA nachgebaut
26.10.2015 11:54:24
PQuest:-)
...oder als Function in eine Sub einbinden :-)
Danke, werde es heute abend in Ruhe austesten.

AW: Zählenwenn in VBA nachgebaut
26.10.2015 11:57:32
Daniel
wie auch immer.
du kannst es natürlich auch direkt in deinem Code verwenden.
Gruß Daniel

AW: Zählenwenn in VBA nachgebaut
26.10.2015 21:56:05
PQuest:-)
Hallo Daniel,
wie zu erwarten. Passt wie Faust auf's Auge.
1000 Dank!!

Deine nähere Erläuterung entspricht nicht ...
26.10.2015 04:58:23
Luc:-?
…dem in der BspDatei vorgestellten Ergebnis, Peter;
sollen nur ungleiche Wertigkeiten addiert wdn, das hast du gemacht, oder tatsächlich eine Summe der Wertigkeiten für den Zeilen-Counter gebildet wdn wie im Folgenden?
1 Zeile3: {=WENNFEHLER(MAX(WENN(LoP!A3:F3=Cal!A$3;LoP!A$10:F$10));"")}
0,6 Zeile4: {=WENNFEHLER(SUMME(WENN(LoP!A4:F4=Cal!A$3;LoP!A$10:F$10));"")}
1,3 Zeile5: {=WENNFEHLER(SUMME(WENN(LoP!A5:F5=Cal!A$3;LoP!A$10:F$10));"")}
0,3 Zeile6: {=WENNFEHLER(SUMME(WENN(LoP!A6:F6=Cal!A$3;LoP!A$10:F$10));"")}
3,2 Gesamt: =SUMME(dieserWerte)
Dafür brauchst du auch keine spezielle Zählenwenn-Fkt, schon gar nicht, wenn sie nicht mal allgemeiner einsetzbar ist als ZÄHLENWENN!
Aber viell geht's dir ja um eine Klick-auf-Button-Lösung…?!
Morrn, Luc :-?

Anzeige
AW: Deine nähere Erläuterung entspricht nicht ...
26.10.2015 11:58:03
PQuest:-)
Hallo Luc,
es ist so wie in der Datei beschrieben. Innerhalb der Zeile soll nur der höchste Wert 1x gezählt werden. Die Ergebnisse der einzelnen Zeilen sollen dann als Gesamtsumme zusammengefasst werden.
Ich weiss nicht, was du unter einer Klick-auf-Button Lösung verstehst. es muss auf jeden Fall in einen vorhandenen Sourcecode eingefügt werden ...also ist VBA gefragt :-)
Grüße

In der Datei steht was Anderes! owT
26.10.2015 20:42:31
Luc:-?
:-?

AW: In der Datei steht was Anderes! owT
26.10.2015 20:55:21
PQuest:-)
Zitat:
Wird der Wert in der Zeile mehrmals gefunden, soll nur der höchste Wert einmal gezählt werden.
Wird der Wert in mehreren Zeilen gefunden, so sind die Ergebnisse der Zeilen zu addieren
Ich finde, das lässt nicht viel Freiraum für Spekulationen. Sicher nur ein Missverständnis, aber nun haben wir es ja geklärt ;-)

Anzeige
Du unterscheidest im Bsp zwischen 1. ...
27.10.2015 03:11:14
Luc:-?
…und den Folgezeilen, Peter,
was ich wohl missdeutet habe, und schreibst im Wunschergebnis Wertigkeit der Trefferspalten = 1 und 0,3, was ich im Zusammenhang mit sind die Ergebnisse der Zeilen zu addieren als Addition der Spaltenwerte, nicht als ihr Maximum gedeutet hatte. Dass insgesamt 'ne Summe gebildet wird, hatte ich gesehen. Folglich hätte die Fml nur für dieses Gesamt aus den (zuvor) ermittelten Maxima gebildet wdn müssen. 'Ne (mögliche!) Fml-Entwicklung kann ich mir dann ja jetzt schenken… ;-)
Na, da hast du mich ja ganz schön verwirrt, Peter… ;-]
Luc :-?
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige