Supportnet / Forum / Tabellenkalkulation
zählenwenn-problem
Frage
Hallo zusammen
Ich versuche seit einiger Zeit folgendes Problem zu lösen und bekomme es leider nicht hin. Wäre froh wenn mir jemand hilft:
In Excel habe ich eine Datei mit 23 identischen Tabellen erstellt. In diesen Tabellen gibt es in gewissen Zellen (also z.B. immer in B4) ein Dropdown-Menü aus welchem fünf Texteinträge ausgewählt werden können (z.B. "in Planung"). Nun möchte ich in Tabelle 24 eine Gesamtauswertung machen und dort zusammenzählen, wie oft in Tabelle 1 bis 23 in Zelle B4 der Wert "in Planung" steht und diese Summe in einer beliebigen Zelle in Tabelle 24 ausgeben.
Vielen Dank für eure Mithilfe.
Gruss
Antwort 1 von CMan
Hallo.
Dein DropDown-Fled hat ja einen Rückgabewert, der sagt was in deinem DropDown-Feld steht.
Bsp:
In Planung
In Bau
Fertig.
Steht nun in deinem DD-Feld Planung, so bekommst du an eine bestimmte Zelle einen Rückgabewert. In dem obigen Bsp wäre es dann eine 1.
Denn müsstest du ja irgendwo stehen haben.
In Tabelle 24 gehst du dann einfach hin müsstest nur zählen wie oft an den bestimmten Feldern welcher Rückgabewert steht.
Logisch?
Ich hoffe doch, ansonsten einfach mal fragen.
Dein DropDown-Fled hat ja einen Rückgabewert, der sagt was in deinem DropDown-Feld steht.
Bsp:
In Planung
In Bau
Fertig.
Steht nun in deinem DD-Feld Planung, so bekommst du an eine bestimmte Zelle einen Rückgabewert. In dem obigen Bsp wäre es dann eine 1.
Denn müsstest du ja irgendwo stehen haben.
In Tabelle 24 gehst du dann einfach hin müsstest nur zählen wie oft an den bestimmten Feldern welcher Rückgabewert steht.
Logisch?
Ich hoffe doch, ansonsten einfach mal fragen.
Antwort 2 von saftsack
Hallo CMan
Danke für Deine Antwort.
Was Du sagst macht sicher Sinn. Wenn ich es richtig verstanden habe, schlägst Du mir vor, die entsprechenden Rückgabewerte mit der Formel "Summe" auszulesen, oder?
Allerdings habe ich keine Ahnung wo die entsprechenden Rückgabewerte stehen sollen. Ich sehe auf meinen Datenblättern 1-23 jeweils nur den ausgewählten Wert "in Planung", weshalb ich dachte, ich müsste die Zählenwenn-Formel anwenden. Dort habe ich aber eben das schon erwähnte Problem, dass ich im Bereich nicht mehrere einzelne Zellen aus verschiedenen Datenblättern angeben kann ohne, dass es mir einen Fehler anzeigt.
Gruss
Danke für Deine Antwort.
Was Du sagst macht sicher Sinn. Wenn ich es richtig verstanden habe, schlägst Du mir vor, die entsprechenden Rückgabewerte mit der Formel "Summe" auszulesen, oder?
Allerdings habe ich keine Ahnung wo die entsprechenden Rückgabewerte stehen sollen. Ich sehe auf meinen Datenblättern 1-23 jeweils nur den ausgewählten Wert "in Planung", weshalb ich dachte, ich müsste die Zählenwenn-Formel anwenden. Dort habe ich aber eben das schon erwähnte Problem, dass ich im Bereich nicht mehrere einzelne Zellen aus verschiedenen Datenblättern angeben kann ohne, dass es mir einen Fehler anzeigt.
Gruss
Antwort 3 von CMan
Hallo.
Ich probiere meine Idee grade mal eben selber aus.
Ich hatte da aber noch eine Frage zum DD-Feld:
Du kannst es beliebig verschieben oder ist es fest "integriert"?
Wo hast du die "Sachen" hingeschrieben, die dein DD-Feld dir anzeigen soll?
Ich probier hier mal weiter und meld mich dann wenn ich was neues herausgefunden habe.
Ich probiere meine Idee grade mal eben selber aus.
Ich hatte da aber noch eine Frage zum DD-Feld:
Du kannst es beliebig verschieben oder ist es fest "integriert"?
Wo hast du die "Sachen" hingeschrieben, die dein DD-Feld dir anzeigen soll?
Ich probier hier mal weiter und meld mich dann wenn ich was neues herausgefunden habe.
Antwort 4 von saftsack
Also, ich habe in den Datenblättern 1-23 in der Zelle B4 (bleibt immer in B4) ein DD-Feld gemacht. Dieses habe ich über das Menü: Daten>Gültigkeit getan. Dort habe ich bei zulassen "Liste" ausgewählt und bei Quelle die Werte (z.B"in Planung" u.a.) definiert.
Mir war das die einzig bekannte Möglichkeit um ein DD-Feld zu erstellen. Oder hätte es da noch eine andere Möglichkeit gegeben?
Die Auswertung (wieviele Werte "in Planung" gibt es über alle 23 Datenblätter) soll dann in einer definierten Zelle (z.B. A1) im Datenblatt 24 als Summe erscheinen.
Danke Dir im Voraus.
Mir war das die einzig bekannte Möglichkeit um ein DD-Feld zu erstellen. Oder hätte es da noch eine andere Möglichkeit gegeben?
Die Auswertung (wieviele Werte "in Planung" gibt es über alle 23 Datenblätter) soll dann in einer definierten Zelle (z.B. A1) im Datenblatt 24 als Summe erscheinen.
Danke Dir im Voraus.
Antwort 5 von JoeKe
Hi,
versuch mal folgendes:
=SUMME(ZÄHLENWENN(Tabelle1!B2;"in planung");ZÄHLENWENN(Tabelle2!B2;"in planung");ZÄHLENWENN(Tabelle3!B2;"in planung");...........;ZÄHLENWENN(Tabelle23!B2;"in planung"))
ist zwar ne Menge Schreibarbeit aber vielleicht hilft es dir.
MfG
JöKe
versuch mal folgendes:
=SUMME(ZÄHLENWENN(Tabelle1!B2;"in planung");ZÄHLENWENN(Tabelle2!B2;"in planung");ZÄHLENWENN(Tabelle3!B2;"in planung");...........;ZÄHLENWENN(Tabelle23!B2;"in planung"))
ist zwar ne Menge Schreibarbeit aber vielleicht hilft es dir.
MfG
JöKe
Antwort 6 von saftsack
Nachtrag:
Ich habe jetzt bei derselben Datei auch eine Summenformel (aus allen Feldern B6 der Datenblätter 1-23) wie folgt gemacht:
=SUMME(AGS!B6;BFS!B6;SfG!B6;OS!B6;OSLS!B6;WBS!B6;KG!B6;KGR!B6;PSO!B6;PSW!B6;PSK!B6;PSLS!B6;DMS!B6;GB!B6;GK!B6;GL!B6;GM!B6;WG!B6;MfB!B6;SBA!B6;PASS!B6;HPS!B6)
Und diese Summe im Feld B3 des Datenblatts 24 anzeigen lassen. > Funktioniert tiptop. Wenn ich aber bei der "zählenwenn"-Formel dieses Bereich eingeben will, geht das leider nicht)
Ich habe jetzt bei derselben Datei auch eine Summenformel (aus allen Feldern B6 der Datenblätter 1-23) wie folgt gemacht:
=SUMME(AGS!B6;BFS!B6;SfG!B6;OS!B6;OSLS!B6;WBS!B6;KG!B6;KGR!B6;PSO!B6;PSW!B6;PSK!B6;PSLS!B6;DMS!B6;GB!B6;GK!B6;GL!B6;GM!B6;WG!B6;MfB!B6;SBA!B6;PASS!B6;HPS!B6)
Und diese Summe im Feld B3 des Datenblatts 24 anzeigen lassen. > Funktioniert tiptop. Wenn ich aber bei der "zählenwenn"-Formel dieses Bereich eingeben will, geht das leider nicht)
Antwort 7 von saftsack
Ok versuch ich mal - Danke vorerst!
Antwort 8 von Niels
Hallo saftsack!
Das geht auch mit VBA
Geh in den Visual Basic-Editor
Da auf "Einfügen - Modul"
und da schreibst du folgendes rein:
Sub Auswerten()
a = 0
b = 0
c = 0
d = 0
e = 0
For i = 1 To 23
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text1" Then a = a + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text2" Then b = b + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text3" Then c = c + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text4" Then d = d + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text5" Then e = e + 1
Next
Worksheets("Tabelle24").Cells(2, 1).Value = a
Worksheets("Tabelle24").Cells(3, 1).Value = b
Worksheets("Tabelle24").Cells(4, 1).Value = c
Worksheets("Tabelle24").Cells(5, 1).Value = d
Worksheets("Tabelle24").Cells(6, 1).Value = e
End Sub
Die Suchbegriffe mußt du noch entsprechend anpassen bei "Text1, Text2.....Text5"
Gruß Niels
Das geht auch mit VBA
Geh in den Visual Basic-Editor
Da auf "Einfügen - Modul"
und da schreibst du folgendes rein:
Sub Auswerten()
a = 0
b = 0
c = 0
d = 0
e = 0
For i = 1 To 23
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text1" Then a = a + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text2" Then b = b + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text3" Then c = c + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text4" Then d = d + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Text5" Then e = e + 1
Next
Worksheets("Tabelle24").Cells(2, 1).Value = a
Worksheets("Tabelle24").Cells(3, 1).Value = b
Worksheets("Tabelle24").Cells(4, 1).Value = c
Worksheets("Tabelle24").Cells(5, 1).Value = d
Worksheets("Tabelle24").Cells(6, 1).Value = e
End Sub
Die Suchbegriffe mußt du noch entsprechend anpassen bei "Text1, Text2.....Text5"
Gruß Niels
Antwort 9 von saftsack
Hi Niels
Habe Deine 1. Version ausprobiert. War zwar einiges an Schreibarbeit bzw. copy/paste & suchen/ersetzen aber es hat wunderbar funktioniert. Vielen, vielen Dank!
Die Lösung mit dem Visual Basic Editor muss ich mir mal genauer ansehen. Auf den ersten Blick konnte ich sie nicht ganz nachvollziehen (habe den auch noch nie benutzt).
Also nochmals, vielen Dank und Gruss
Marcus
Habe Deine 1. Version ausprobiert. War zwar einiges an Schreibarbeit bzw. copy/paste & suchen/ersetzen aber es hat wunderbar funktioniert. Vielen, vielen Dank!
Die Lösung mit dem Visual Basic Editor muss ich mir mal genauer ansehen. Auf den ersten Blick konnte ich sie nicht ganz nachvollziehen (habe den auch noch nie benutzt).
Also nochmals, vielen Dank und Gruss
Marcus
Antwort 10 von JoeKe
Hi Marcus,
vielen Dank für deine Rückinfo. Freut mich das Niels dir helfen konnte ;-))).
MfG
Jöke
vielen Dank für deine Rückinfo. Freut mich das Niels dir helfen konnte ;-))).
MfG
Jöke
Antwort 11 von saftsack
Hallo nochmal
Bin soeben am ausprobieren der 2. Variante mit dem VB-Editor.
Da ich leider noch keine Erfahrung damit habe sind nun folgende Fragen aufgetaucht:
(Also den VB-Editor habe ich gefunden und auch das Modul eingefügt und den Text angepasst wie´s Niels geschrieben hat)
- Starte ich den VB-Editor von derjenigen Zelle in Tabelle 24 aus, in der ich dann auch das Resultat will?
- Nachdem ich das Modul erstellt habe, was sind die nächsten Schritte, damit dieses ausgeführt wird und zum Resultat führt.
Sorry, ich habe diese Infos schon über die Hilfe gesucht aber leider nicht gefunden.
Danke!
Bin soeben am ausprobieren der 2. Variante mit dem VB-Editor.
Da ich leider noch keine Erfahrung damit habe sind nun folgende Fragen aufgetaucht:
(Also den VB-Editor habe ich gefunden und auch das Modul eingefügt und den Text angepasst wie´s Niels geschrieben hat)
- Starte ich den VB-Editor von derjenigen Zelle in Tabelle 24 aus, in der ich dann auch das Resultat will?
- Nachdem ich das Modul erstellt habe, was sind die nächsten Schritte, damit dieses ausgeführt wird und zum Resultat führt.
Sorry, ich habe diese Infos schon über die Hilfe gesucht aber leider nicht gefunden.
Danke!
Antwort 12 von JoeKe
Hi Marcus,
wenn du im VB Editor alles fertig hast schließt du ihn wieder. Das Makro kannst du dann aus jedem Blatt starten. Entweder du baust dir dafür eine Schaltfläche ein oder startest es mit ALT+F8 dadurch erhälst du eine Liste aller deiner Makros (in deinem Fall wahrscheinlich nur das eine) dies anwählen und auf ausführen klicken.
MfG
JöKe
wenn du im VB Editor alles fertig hast schließt du ihn wieder. Das Makro kannst du dann aus jedem Blatt starten. Entweder du baust dir dafür eine Schaltfläche ein oder startest es mit ALT+F8 dadurch erhälst du eine Liste aller deiner Makros (in deinem Fall wahrscheinlich nur das eine) dies anwählen und auf ausführen klicken.
MfG
JöKe
Antwort 13 von saftsack
Danke.
Habe nun folgendes Modul erstellt:
Sub Auswerten()
a = 0
b = 0
c = 0
d = 0
e = 0
For i = 2 To 23
If Worksheets("Tabelle" & i).Cells(4, 2) = "nicht definiert" Then a = a + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "in Planung" Then b = b + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Einführung" Then c = c + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Umsetzung" Then d = d + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Betrieb" Then e = e + 1
Next
Worksheets("Tabelle1").Cells(2, 1).Value = a
Worksheets("Tabelle1").Cells(3, 1).Value = b
Worksheets("Tabelle1").Cells(4, 1).Value = c
Worksheets("Tabelle1").Cells(5, 1).Value = d
Worksheets("Tabelle1").Cells(6, 1).Value = e
End Sub
Info: Tabelle 1 ist meine Gesamttabelle in der die Auswertungen stattfindet (heisst bei mir "Gesamt") deshalb habe ich oben hinter Worksheets auf "Tabelle 1" abgeändert .
In den Tabellen 2 - 23 habe ich die Textwerte die auszuwerten sind und habe deshalb und bei "For i = 2 To 23" geschrieben.
War aber wahrscheinlich völlig falsch, denn nun habe ich in meiner Tabelle 1 in Zelle C4 dieses Makro ausgeführt und erhalte den folgenden Fehler:
Laufzeitfehler ´9´:
Index ausserhalb des gültigen Bereichs
Habe nun folgendes Modul erstellt:
Sub Auswerten()
a = 0
b = 0
c = 0
d = 0
e = 0
For i = 2 To 23
If Worksheets("Tabelle" & i).Cells(4, 2) = "nicht definiert" Then a = a + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "in Planung" Then b = b + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Einführung" Then c = c + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Umsetzung" Then d = d + 1
If Worksheets("Tabelle" & i).Cells(4, 2) = "Betrieb" Then e = e + 1
Next
Worksheets("Tabelle1").Cells(2, 1).Value = a
Worksheets("Tabelle1").Cells(3, 1).Value = b
Worksheets("Tabelle1").Cells(4, 1).Value = c
Worksheets("Tabelle1").Cells(5, 1).Value = d
Worksheets("Tabelle1").Cells(6, 1).Value = e
End Sub
Info: Tabelle 1 ist meine Gesamttabelle in der die Auswertungen stattfindet (heisst bei mir "Gesamt") deshalb habe ich oben hinter Worksheets auf "Tabelle 1" abgeändert .
In den Tabellen 2 - 23 habe ich die Textwerte die auszuwerten sind und habe deshalb und bei "For i = 2 To 23" geschrieben.
War aber wahrscheinlich völlig falsch, denn nun habe ich in meiner Tabelle 1 in Zelle C4 dieses Makro ausgeführt und erhalte den folgenden Fehler:
Laufzeitfehler ´9´:
Index ausserhalb des gültigen Bereichs
Antwort 14 von JoeKe
Hi Marcus,
wenn das Blatt "Gesamt" heißt musst du es im Code auch so angeben. Also: Worksheet("Gesamt")
MfG
JöKe
wenn das Blatt "Gesamt" heißt musst du es im Code auch so angeben. Also: Worksheet("Gesamt")
MfG
JöKe
Antwort 15 von Niels
Stimme JöKe da zu!
Achte drauf das deine Datentabellen alle "Tabelle1, Tabelle2....Tabelle23" usw. heißen und die For Next Schleife von 1 bis 23 geht (du hast doch 23 Tabellen mit Daten und eine Tabelle "Gesamt" oder?)
Gruß Niels
Achte drauf das deine Datentabellen alle "Tabelle1, Tabelle2....Tabelle23" usw. heißen und die For Next Schleife von 1 bis 23 geht (du hast doch 23 Tabellen mit Daten und eine Tabelle "Gesamt" oder?)
Gruß Niels
Antwort 16 von saftsack
Danke JöKe aber irgendwo ist noch der Wurm drin, da ich nochmals den gleichen Fehler bekomme :o(
Meine Tabellen heissen: 1=Gesamt; 2=AGS; 3=BFS; 4=DMS; etc. mit anderen Abkürzungen bis schlussendlich 24=HPS
Meine Textwerte lauten: "nicht definiert" "in Planung" "Einführung" "Umsetzung" "Betrieb"
Was muss ich denn in Niels Modul genau abändern?
Und für was stehen jeweils die Ziffern hinter "Cells"?
Gruss
Marcus
Meine Tabellen heissen: 1=Gesamt; 2=AGS; 3=BFS; 4=DMS; etc. mit anderen Abkürzungen bis schlussendlich 24=HPS
Meine Textwerte lauten: "nicht definiert" "in Planung" "Einführung" "Umsetzung" "Betrieb"
Was muss ich denn in Niels Modul genau abändern?
Und für was stehen jeweils die Ziffern hinter "Cells"?
Gruss
Marcus
Antwort 17 von saftsack
Hi Niels
Nein es ist eben so wie ich vorhin geschrieben habe, dass nämlich die Tabellenblätter 2-24 alle mit Abkürzungen der Mandaten bezeichnet sein müssen. Ich kann sie also nicht Tabelle2-24 nennen.
Die Gesamt-Auswertung findet dann auf Tabelle 1 statt und die heisst "Gesamt".
Sorry, hätte ich wahrscheinlich früher mitteilen müssen.
Nein es ist eben so wie ich vorhin geschrieben habe, dass nämlich die Tabellenblätter 2-24 alle mit Abkürzungen der Mandaten bezeichnet sein müssen. Ich kann sie also nicht Tabelle2-24 nennen.
Die Gesamt-Auswertung findet dann auf Tabelle 1 statt und die heisst "Gesamt".
Sorry, hätte ich wahrscheinlich früher mitteilen müssen.
Antwort 18 von Niels
Hallo Marcus!
Die Zahlen in Cells bedeuten Cells(Spalte,Zeile) also Cells(2,1) ist Zelle B4
Hmm da du die Datentabellen nicht mit fortlaufender Nummer hast wird es ein bischen knifflig.
Mal sehen ich bastel mal was...
Gruß Niels
Die Zahlen in Cells bedeuten Cells(Spalte,Zeile) also Cells(2,1) ist Zelle B4
Hmm da du die Datentabellen nicht mit fortlaufender Nummer hast wird es ein bischen knifflig.
Mal sehen ich bastel mal was...
Gruß Niels
Antwort 19 von Niels
Zitat:
Die Zahlen in Cells bedeuten Cells(Spalte,Zeile) also Cells(2,1) ist Zelle B4
Die Zahlen in Cells bedeuten Cells(Spalte,Zeile) also Cells(2,1) ist Zelle B4
blödsinn!
Cells(2,4) ist Zelle B4
Sorry!
Antwort 20 von Niels
so..hab was gebastelt..
versuch das hier mal:
Sub Auswerten()
a = 0
b = 0
c = 0
d = 0
e = 0
For i = 1 To Worksheets.Count
If Sheets(i).Name <> "Gesamt" Then
If Sheets(i).Cells(4, 2) = "nicht definiert" Then a = a + 1
If Sheets(i).Cells(4, 2) = "in Planung" Then b = b + 1
If Sheets(i).Cells(4, 2) = "Einführung" Then c = c + 1
If Sheets(i).Cells(4, 2) = "Umsetzung" Then d = d + 1
If Sheets(i).Cells(4, 2) = "Betrieb" Then e = e + 1
End If
Next
Worksheets("Gesamt").Cells(2, 1).Value = a
Worksheets("Gesamt").Cells(3, 1).Value = b
Worksheets("Gesamt").Cells(4, 1).Value = c
Worksheets("Gesamt").Cells(5, 1).Value = d
Worksheets("Gesamt").Cells(6, 1).Value = e
End Sub
Sollte so eigendlich klappen!
Gruß Niels
versuch das hier mal:
Sub Auswerten()
a = 0
b = 0
c = 0
d = 0
e = 0
For i = 1 To Worksheets.Count
If Sheets(i).Name <> "Gesamt" Then
If Sheets(i).Cells(4, 2) = "nicht definiert" Then a = a + 1
If Sheets(i).Cells(4, 2) = "in Planung" Then b = b + 1
If Sheets(i).Cells(4, 2) = "Einführung" Then c = c + 1
If Sheets(i).Cells(4, 2) = "Umsetzung" Then d = d + 1
If Sheets(i).Cells(4, 2) = "Betrieb" Then e = e + 1
End If
Next
Worksheets("Gesamt").Cells(2, 1).Value = a
Worksheets("Gesamt").Cells(3, 1).Value = b
Worksheets("Gesamt").Cells(4, 1).Value = c
Worksheets("Gesamt").Cells(5, 1).Value = d
Worksheets("Gesamt").Cells(6, 1).Value = e
End Sub
Sollte so eigendlich klappen!
Gruß Niels
Antwort 21 von saftsack
Also danke Niels und JöKe für eure Bemühungen aber das mit dem VB-Ed. will einfach bei mir nicht hinhauen. Mit der letzten Version ist einfach nichts passiert?!
Naja, ich hab ja für mein Problem zum Glück ja noch die andere Lösung von Niels.
Mir raucht jetzt der Kopf.
Schönen Abend noch und Gruss
Marcus
Naja, ich hab ja für mein Problem zum Glück ja noch die andere Lösung von Niels.
Mir raucht jetzt der Kopf.
Schönen Abend noch und Gruss
Marcus