Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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ählenwenns fürVerschiedene Zeilen von einer Spalte benutzen

Zählenwenns fürVerschiedene Zeilen von einer Spalte benutzen
25.01.2024 12:03:54
Ben
Hallihallo alle,
lange Rede kurzer Sinn, ich brauche eure Hilfe.
Ich habe in einer Spalte (A:A) unterschiedliche Werte zum Beispiel
1
0
1
1
0
0
1
Siehe Excel
https://www.herber.de/bbs/user/166412.xlsx
Meine Frage wie benutze ich COUNTIFS damit er die Spalte und die Werte erkennt?
Mit MakroAufzeich. bekomme ich etwa sowas
ActiveCell.FormulaR1C1 = _
"=COUNTIFS(RC[-11],1,R[-1]C[-11],0,R[-2]C[-11],0,R[-3]C[-11],1,R[-4]C[-11],1,R[-5]C[-11],0)"

Danke für jede Hilfe
Ben

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zählenwenns fürVerschiedene Zeilen von einer Spalte benutzen
25.01.2024 12:07:28
{Boris}
Hi,

so wie Du hier ZÄHLENWENNS angewendet hast, ergibt das keinen Sinn.
Was genau möchtest Du errechnen? Bitte kurz erklären und mit Wunschergebnis versehen.

VG, Boris
AW: Zählenwenns fürVerschiedene Zeilen von einer Spalte benutzen
25.01.2024 13:19:08
Ben
Hallo Boris,

ich werte Daten auf und brauche dafür eine Mustererkennung.
In eine Spalte ("A:A") habe ich eine sehr lange Folge von 1 und 0 (Ereignise)
1
1
0
0
1
.
.
.
Ich schreibe die Formel in der Spalte("B:B") neben der letzte Zeile Von ("A:A") und mit
Selection.AutoFill Destination ("A2")
Durch diese Mustererkennung finde ich z.B. schnell welche Ereignis hatte auch 0,0,1,1 zuvor

Wenn ich VBA benutze habe folgende Schwierigkeiten:

ActiveCell.FormulaR1C1 = _
"=COUNTIFS(RC[-11],1,R[-1]C[-11],0,R[-2]C[-11],0,R[-3]C[-11],1,R[-4]C[-11],1,R[-5]C[-11],0)"
-Ich weiß nicht wie ich die Formel von der Spalte abhängig schreiben kann
-Ich weiß nicht wie ich die Cells(i, a).value einbringen damit Excel die Werte übenimmt
Ich hoffe es ist jetzt verständlicher jetzt

Viele Grüße
Ben
Anzeige
Das ist aber leider keine Antwort...
25.01.2024 13:29:32
{Boris}
Hi,

...auf meine Frage. Ich kapier nicht, was genau das Ziel ist - unabhängig von VBA - also erstmal die reine Aufgabenstellung.
Was genau möchtest Du errechnen mit welchem Wunschergebnis?
Die Funktion ZÄHLENWENNS wird hier von Dir nicht korrekt angewandt.

VG, Boris
AW: Das ist aber leider keine Antwort...
25.01.2024 14:52:57
Ben
Hi Boris,
vielleicht liegt es daran dass ich kein Reinblut Exceler bin, ich suche immer Lösungen.
ich möchte dass jemand mir zeigt wie ich Zählenwenns in VBA in Abhängigkeit der Spalte und Werte der vorherigen Zeilen schreiben kann
-_-
Viele Grüße
Ben
AW: Das ist aber leider keine Antwort...
25.01.2024 20:10:08
Uduuh
Hallo,
ich möchte dass jemand mir zeigt wie ich Zählenwenns in VBA in Abhängigkeit der Spalte und Werte der vorherigen Zeilen schreiben kann
Wie soll man das, wenn man das Ziel nicht kennt? Wahrscheinlich ist Zählenwenns() schon die falsche Funktion.

Gruß aus'm Pott
Udo
Anzeige
AW: Das ist aber leider keine Antwort...
26.01.2024 21:00:00
Ben
Hi, T_T
ich habe den Eindruck, ihr wollt mich fertig machen.

Ich versuches nochmal,
-Spalte("A:A") habe ich A1 1, A2 1, A3 0, A4 1
-C4 gebe ich folgende Formel ein : =ZÄHLENWENNS(A4;1;A3;0;A2;1;A1;1)
Makro ist :
Range("C4").Select
ActiveCell.FormulaR1C1 = _
"=COUNTIFS(RC[-2],1,R[-1]C[-2],0,R[-2]C[-2],1,R[-3]C[-2],1)"

Meine Fragen wie kann ich schreiben dass das Makro liest selbst die Werte in Zeilen? ich dache so an Cells(i, 1).value , mit i as integer und For i = 1 To 4.
2. Frage: kann ich statt R[ ] und C[ ] etwas anders benutzen? Dachte wenn ich mit "A1" anfange, mit Cells( 1, 1).Select, dass VBA die Spalte ermitteln kann. Damit ich mit nicht mir R und C rumschlagen muss.

Danke für jede Hilfe
Ben
Anzeige
Die Frage ist doch aber...
27.01.2024 14:23:47
{Boris}
Hi,

...wer hier wen fertig machen möchte ;-)
Wir wollen Dir doch nix Böses, aber um Dir eine mögliche Lösung zu präsentieren, muss man halt erst mal verstehen, was genau Dein Ziel bzw. die Aufgabe (mit Wunschlösung) ist. Und davon bin (zumindest ich) noch weit entfernt.

Deine Frage
Meine Fragen wie kann ich schreiben dass das Makro liest selbst die Werte in Zeilen?
ist für mich so komplett unverständlich.
Und nochmals: ZÄHLENWENNS ist hier mit aller größter Wahrscheinlichkeit das falsche Mittel der Wahl.

Beschreib doch bitte mal mit Worten, was genau die Aufgabe ist. Eine VBA-Umsetzung kann man dann immer noch überlegen.

VG, Boris
Anzeige
AW: Die Frage ist doch aber...
28.01.2024 17:11:04
Ben
Danke Boris für eine Aufrichtigkeit,

ich gebe mir Mühe,
ich habe in Excel ausgeführt
https://www.herber.de/bbs/user/166478.xlsx
Range("A6971:A6980") zeigt die Folge die ich wieder finden möchte in
dem Bereich ("A2:A6968")
Mir ist als Lösung nur Zählenwenns im Sinn gekommen.
Ich wollte auch ein Makro das wenn man den Bereich angegeben hat, sich die
Werte in Zeilen selbst holt und ausführt.

Viele Grüße
Ben
Der Versuch einer Lösung
28.01.2024 21:26:18
{Boris}
Hi,

also die Aufgabenstellung lautet dann wie folgt:

In Spalte A habe ich untereinander eine lückenlose Folge von vielen 0 und 1 - komplett durcheinander.
Ich suche nun das Vorhandensein einer bestimmten Folge von Nullen und Einsern. Diese Folge wird im Bereich A6971:A6980 vorgegeben.


Hab ich das so richtig formuliert?

Schreibe in B2 folgende Formel

=--UND(A2:A11=A$6971:A$6980)

Schließe Sie als Array(!)formel ab (nicht mit Enter allein sondern mit gleichzeitig Strg+Shift+Enter) und kopiere sie runter bis B6968.

Mit =SUMME(B:B) bekommst Du dann die Anzahl der Treffer (in Deiner Beispieldatei 11).

Ist es das, was Du suchst?

VG, Boris

P.S.: Für xl365 wäre diese Formel eine Option:
=LET(TK;TEXTKETTE(A6971:A6980);x;SCAN("";A2:A6968;LAMBDA(a;b;a&b));SUMME(--(RECHTS(x;LÄNGE(TK))=TK)))
Anzeige
AW: Der Versuch einer Lösung
28.01.2024 21:45:41
Ben
Hallo Boris,
Vielen Dank für die schnelle Antwort,
ich versuche sie sofort und werde mich melden
VG
Ben
AW: Der Versuch einer Lösung
30.01.2024 20:12:12
Ben
Hallo Boris,
ich danke dir nochmals für die Lösung, sie funktioniert super!!! Es ist als ob
ich früher gelaufen bin und jetzt fahre ich Auto :-)

Wenn du noch Zeit hast würde ich noch deine Hilfe im Anspruch nehmen.
Ich versuche zu erklären was ich zufügen möchte.

Diese Folge wird im Bereich A6971:A6980 vorgegeben.
Die gesuchte Folge ist eigentlich den Bereich A6958:A6968, 10 Zeilen.

Ist es möglich diese Do-While Schleife zu konstruieren?
-Ich möchte nur z.B. 3 Treffer, nicht 11 wie im meinem Fall.
Wenn ich die Länge meines Bereiches erhöht, also jetzt von
A6971:A6980 auf A6970:A6980 1 Zeile mehr bekomme jetzt 8 Treffer
Bei A6969:A6980 1 Zeile mehr bekomme ich jetzt 6 Treffer
Bei A6968:A6980 1 Zeile mehr bekomme ich jetzt 3 Treffer

Ich hoffe dass es verständlich ist, und bedanke mich für jede Hilfe.

VG
Ben



Anzeige
AW: Der Versuch einer Lösung
31.01.2024 12:48:14
{Boris}
Hi,

ich verstehe das so, dass Deine abzufragende Folge mal mehr, mal weniger als 10 Ziffern betragen kann - dies also variabel sein soll.
Zur besseren Übersichtlichkeit in Deiner Datei:
Lösche alle Einträge in Spalte A unterhalb A6968.
Für die zu suchende Folge steht nun in meinem Beispiel der Bereich G2:G30 zur Verfügung (dort schreibst Du untereinander lückenlos die gesuchte Folge aus 0 und 1 rein).
Jetzt kann die gesuchte Folge von 1 (G2) bis 29 (G30) Zahlen lang sein.
In B2 dann diese Arrayformel (wieder mit Strg+Shift+Enter abschließen):

=--UND(A2:INDEX(A2:A$10000;ANZAHL(G$2:G$30))=G$2:INDEX(G$2:G$30;ANZAHL(G$2:G$30)))

und bis B6968 runterkopieren.

Das Ergebnis erhältst Du unverändert mit =SUMME(B:B)

Passt das so?

VG, Boris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige