Verzweigte ZÄHLENWENNS-Funktion
#11
Hi,


Zitat:Die letzte Prozedur entfern die Spalte mit dem Wort "Exit", wodurch sich die Funktion nicht mehr anwenden lässt.



glaubst Du, mit VBA lassen sich dann immer noch Zellen mit "Exit" finden?
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#12
1. Ich dachte hier werden keine .xlsm-Dateien verwendet, wegen dem Sicherheitsrisiko
2. Leider kann/ darf ich die Makros nicht posten.

Ist es auch ohne diese möglich?

Ich habe es bereits mit einer If-And-And-Then Anweisunge versucht. Dieser Ansatz wäre aber wohl sehr lang.
Vielleicht gibt es einen eleganteren Ansatz.
Top
#13
(19.04.2017, 10:58)BoskoBiati schrieb: Hi,





glaubst Du, mit VBA lassen sich dann immer noch Zellen mit "Exit" finden?

Selbstverständlich. Wenn ich die Prozedur (CountIf) vor der letzten Prozedur im Workbook_Open Event setze, sollte dies wohl funktionieren.
Top
#14
[font=Courier New]Hallo Leute,

ich hoffe ich habe mich nicht falsch verhalten oder falsch reagiert!

Ich bin nun auf folgenden Ansatz gekommen:
Code:
tbl_m.Range("E21") = WorksheetFunction.CountIfs(Sheets("tblOne").Range("G:G"), "<=3", Sheets("tblOne").Range("I:I"), "4", Sheets("tblOne").Range("J:J"), "Exit")
Ich habe den Ansatz mit steve1das erweitert.
Wie kriege ich es nun hin, diesen Code zu erweitern? Also, dass ebenfalls bsplweise. auch I=4 und G=3 und J="Exit" mit gezählt werden?
Geht es vielleicht auch über arrays?
Ich habe folgende definiert:
Code:
   arrMatrix(1, 1) = E21
    arrMatrix(1, 2) = E21
   arrMatrix(1, 3) = E21
   arrMatrix(2, 1) = E21
   arrMatrix(2, 2) = E21
   arrMatrix(3, 1) = E21
   
   arrMatrix(1, 4) = E22
    arrMatrix(1, 5) = E22
   arrMatrix(2, 3) = E22
   arrMatrix(2, 4) = E22
   arrMatrix(3, 2) = E22
   arrMatrix(3, 3) = E22
   arrMatrix(3, 4) = E22
   arrMatrix(4, 1) = E22
   arrMatrix(4, 2) = E22
   arrMatrix(4, 3) = E22
   arrMatrix(5, 1) = E22
   
   arrMatrix(5, 2) = E23
    arrMatrix(5, 3) = E23
    arrMatrix(5, 4) = E23
    arrMatrix(5, 5) = E23
   arrMatrix(4, 4) = E23
   arrMatrix(2, 5) = E23
   arrMatrix(3, 5) = E23
   arrMatrix(4, 5) = E23

Die Werte in de Klammern in Kombination mit dem Wort "Exit" sollten dann in die entsprechende Zeile aufsummiert werden.


Viele Wege führen nach Rom. Ich bin immer an unterschiedlichen Ansätzen interessiert, da ich umso mehr Excel und VBA lerne und verstehe.


Ich freue mich über jeden Beitrag.
Top
#15
Hallo Josh,

wenn Du die Spalte J, wo jetzt Exit steht, entfernst, wirst Du kein Exit mehr finden, es sei denn In Spalte K stehen auch Exit, die nach dem Löschen ja zur Spalte J wird.

Wenn Deine Formel die Spalte J zählt, funktioniert die Formel nach dem Löschen nicht mehr, du erhälst #BEZUG. Kannst Du ganz einfach ausprobieren. Schreieb in A1 die Formel =J1 und lösche die Spalte J Smile

Nun noch zur Frage. In VBA kannst Du genau so addieren wie in einer Formel. Addiere also mehrere CountIfs...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • joshua
Top
#16
Hallo

anbei die Musterdatei mit zwei Makro Lösungen zurück.  Das erste Makro erfüllt die gestellte Aufgabe.  Das zweite Makro kann frei programmiert werden nach welchen Kombinationenn man suchen will, durch Eingabe des Suchwertes in drei Zellen. Die Eingabe kann in jede beliebige Spalte verlegt werden.  Dann muss nur im Makro die Adresse für SW1- SW3 geandert werden

mfg  Gast 123


Angehängte Dateien
.xlsm   Muster F.xlsm (Größe: 18,35 KB / Downloads: 1)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • joshua
Top
#17
tblOne
(20.04.2017, 21:46)schauan schrieb: Hallo Josh,

wenn Du die Spalte J, wo jetzt Exit steht, entfernst, wirst Du kein Exit mehr finden, es sei denn In Spalte K stehen auch Exit, die nach dem Löschen ja zur Spalte J wird.

Wenn Deine Formel die Spalte J zählt, funktioniert die Formel nach dem Löschen nicht mehr, du erhälst #BEZUG. Kannst Du ganz einfach ausprobieren. Schreieb in A1 die Formel =J1 und lösche die Spalte J Smile

Nun noch zur Frage. In VBA kannst Du genau so addieren wie in einer Formel. Addiere also mehrere CountIfs...

Hallo schauan.

Ich bekomme mit folgendem Code die Fehlermeldung "Index außerhab ..."

Code:
tbl_m.Range("E21") = WorksheetFunction.CountIfs(Sheets("tblOne").Range("G:G"), "<=3", Sheets("tblOne").Range("I:I"), "1", Sheets("tblOne").Range("J:J"), "EXIT") + _
                         WorksheetFunction.CountIfs(Sheets("tblOne").Range("G:G"), "<=2", Sheets("tblOne").Range("I:I"), "2", Sheets("tblOne").Range("J:J"), "EXIT") + _
                         WorksheetFunction.CountIfs(Sheets("tblOne").Range("G:G"), "1", Sheets("tblOne").Range("I:I"), "1", Sheets("tblOne").Range("J:J"), "EXIT")

Wo genau liegt man Fehler hierbei?

Danke gast123 für deinen Ansatz,

ich kann gerade keine Dateien runterladen. Ich schaue mir Deinen Code an, sobald ich kann (:
Top
#18
=SUMME(ZÄHLENWENNS(G2:G200;1;I2:I200;{2.3};J2:J200;"Exit"))

Achtung: Willst Du mehrere Kriterien ausweiten, dann geht es für alle denkbaren Kombinationen nicht so:

=SUMME(ZÄHLENWENNS(G2:G200;{1.4};I2:I200;{2.3};J2:J200;"Exit")), sondern - bei max. 2 variablen Kriterien - so:

=SUMME(ZÄHLENWENNS(G2:G200;{1.4};I2:I200;{2;3};J2:J200;"Exit")) oder so:
=SUMME(ZÄHLENWENNS(G2:G200;{1.1.4.4};I2:I200;{2.3.2.3};J2:J200;"Exit"))

(bitte Unterschied zw. Punkt und Semikolon beachten)

Mit
=SUMME(ZÄHLENWENNS(G2:G200;{1.1.4};I2:I200;{2.3.2};J2:J200;"Exit"))

kannst Du so dann flexibel den Fall 4...3 ausschließen! - Schweizer nehmen keine Punkte, sondern Backslashes.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste