Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel-Befehl Zählenwenn für mehrere Tabellenblätter





Frage

Moin, moin, als Benutzer der ganz einfachen Strickart habe ich in einer excel-datei ca. 20 Tabellenblätter angelegt, die jeweils nach gleichem Muster Angaben enthalten. Nun würde ich auf dem zusammenfassenden ersten Tabellenblatt fürchterlich gerne wissen, wie oft in den übrigen Blättern in Zelle C2 die Zahl "1" auftaucht. Dazu wollte ich ZÄHLENWENN verwenden, indes bekomme ich es nicht hin, excel zur Durchsuchung aller Einzelblätter zu bewegen, gar ohne diese einzeln aufführen zu müssen. Ist mein Begehren unmöglich? Wäre für Hinweis recht dankbar! Gruß Reu

Antwort 1 von coros

Hallo Reu,

unter der Voraussetzung, dass alle Tabellenblätter den gleichen Namen haben und sich nur mit den Nummer unterscheiden (z.B. Tabelle1, Tabelle2, Tabelle3 usw.) könnte man das mit der Formel

=SUMME(ZÄHLENWENN(INDIREKT("Tabelle"&ZEILE(1:20)&"!C2");"1"))

erreichen. Nachdem Du die Formel in Deiner Datei eingetragen hast, musst Du die Formeleingabe mit der Tastenkombination "Shift Strg Enter" abschließen, da es sich bei der Formel um eine Matrixformel handelt.
Bei der Formel ist Bedingung, dass es 20 Tabellenblätter mit dem Namen "Tabelle1" bis "Tabelle20" gibt. Ansonsten erhälst Du den Rückgabewert "#BEZUG!".

Haben die Tabellenblätter unterschiedliche Namen, wie z.B. Januar, Februar usw., wird eine Lösung meines Erachtens nach wohl nur via VBA in Frage kommen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von rainberg

Hallo Oliver,

Deine Formel rechnet zwar richtig, ich möchte aber, der Ordnung halber, darauf hinweisen, dass Zahlenwerte ohne " " geschrieben werden.

So wär's richtig

=SUMME(ZÄHLENWENN(INDIREKT("Tabelle"&ZEILE(1:20)&"!C2");1))

Zitat:
Haben die Tabellenblätter unterschiedliche Namen, wie z.B. Januar, Februar usw., wird eine Lösung meines Erachtens nach wohl nur via VBA in Frage kommen.

.... dem ist nicht so, anbei mein Formelvorschlag :-)

=SUMME(ZÄHLENWENN(INDIREKT("'"&M1:M20&"'!C2");1))

Die relevanten Tabellenblattnamen werden in einer Hilfsspalte aufgelistet, ich habe im Beispiel den Bereich M1:M20 gewählt (kann beliebig angepasst werden).

Die Formeleingabe ist ebenfalls mit Strg+Shift+Enter abzuschließen.

Gruß
Rainer

Antwort 3 von reu

Hallo Oliver,
Hallo Rainer,
fundamental herzlichen Dank zunächst. Natürlich hatte ich jedem Tabellenblatt einen anderen Namen gegeben - und VBA überfordert mich restlos. Also habe ich die Rainer´sche Formel versucht. Klappt wohl meiner Unbedarftheit wegen nicht: Mehrere unterschiedliche Versuche, die Tabellennamen so in eine Spalte zu bringen, dass excel sie als solche erkennt, schlugen fehl - den richtigen Weg fand ich nicht. Da ich ingesamt 16 Dateien mit dem je nämlichen Problem zu bearbeiten habe, ist es freilich auch etwas mühsam, die komplizierten Tabellennamen (so benenne ich sie auch nie wieder, versprochen) einzutragen -lässt sich das automatisieren?
Sonntägliche Grüsse
Reu

Antwort 4 von reu

Hallo Oliver,
Hallo Rainer,
fundamental herzlichen Dank zunächst. Natürlich hatte ich jedem Tabellenblatt einen anderen Namen gegeben - und VBA überfordert mich restlos. Also habe ich die Rainer´sche Formel versucht. Klappt wohl meiner Unbedarftheit wegen nicht: Mehrere unterschiedliche Versuche, die Tabellennamen so in eine Spalte zu bringen, dass excel sie als solche erkennt, schlugen fehl - den richtigen Weg fand ich nicht. Da ich ingesamt 16 Dateien mit dem je nämlichen Problem zu bearbeiten habe, ist es freilich auch etwas mühsam, die komplizierten Tabellennamen (so benenne ich sie auch nie wieder, versprochen) einzutragen -lässt sich das automatisieren?
Sonntägliche Grüsse
Reu

Antwort 5 von rainberg

Hallo Reu,

folgendes Makro, welches Du Dir in den Codebereich der Auswertungstabelle kopierst, kopiert Dir alle Tabellennamen in die Spalte M ab Zeile 1 der Auswertungstabelle..

Option Explicit

Sub Namen_uebertragen()
    Dim intI As Integer
    For intI = 2 To Worksheets.Count
        Cells(intI - 1, 13).Value = Worksheets(intI).Name
    Next
End Sub


Die Auswertungstabelle sollte als erste Tabelle im Register angeordnet sein.

Gruß
Rainer

Antwort 6 von Reu

Hallo Rainer,
mir erschliessen sich neue Welten! Das klappt ja super! Es dauerte zwar ein Weilchen, bis die Formel mit Bezügen und Werten zufrieden war, jetzt aber läuft sie anständig.
Herzlichen Dank also,
Gruß
Reu

Antwort 7 von rainberg

Hallo Reu,

zum besseren Verständnis anbei eine Beispieldatei mit 20 Arbeitsblättern mit unterschiedlichen Blattnamen.

http://upload.npcfighter.de/files/37/5753/Reu.xls

Gruß
Rainer

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: