Supportnet Computer
Planet of Tech

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.

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

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.

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.

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

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)

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

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

Antwort 10 von JoeKe

Hi Marcus,

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!

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

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

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

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

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

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.

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

Antwort 19 von Niels

Zitat:
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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: