Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

COUNTIF über mehrere sheets

Forumthread: COUNTIF über mehrere sheets

COUNTIF über mehrere sheets
06.02.2006 16:13:18
Eve
hallo
so ich bin schon wieder.
in sheet1 cell F8 will ich zählen,
wieviel x in der cell F8 von alle andere
sheets stehen.
wenn ich neben sheet1 noch 3 andere sheets habe,
und nur in zwei von die 3 sheets steht eine x in F8,
so muss in sheet 1 dann ein 2 stehen.
muss ich mit vba lösen so wenn ja, wie muss ich das mache?
hoffe das ich das richtig erklärt hab.
regards
Eve
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: COUNTIF über mehrere sheets
06.02.2006 16:22:16
Stefan
Hallo,
hier ein Link, der das Ganze mit Summewenn erklärt. Müsste abgewandelt auch auf Zählewenn übertragbar sein:
http://www.excelformeln.de/formeln.html?welcher=206
Ansonsten schaust Du mal, ob Du dort was brauchbares findest. VBA brauchst Du dafür sicher nicht.
Gruß,
Stefan
Anzeige
AW: COUNTIF über mehrere sheets
06.02.2006 16:39:56
Eve
hi Stefan
danke für die link, leider schaff ich doch nicht.
vielleicht hat wer ein ahnung?
regards Eve
AW: COUNTIF über mehrere sheets
06.02.2006 17:40:53
Daniel
Warum so komplizert?
du kannst doch für jedes Sheet eine ZählenWenn-Funktion erstellen, die du dann zusammenzählst.
Gruß, Daniel Eisert
AW: COUNTIF über mehrere sheets
07.02.2006 06:24:14
Eve
hallo Daniel
Das geht nicht wegen die sheets wird
jede monat neu in die mappe kopiert,
so dass ich kann keine formel in die sheets haben.
also ich muss alles in die sheet1 mache.
maybe jemand hat noch ein idea.
regards Eve
Anzeige
AW: COUNTIF über mehrere sheets
07.02.2006 22:43:40
Daniel
Hallo
mit VBA geht es zum Beispiel über folgende Funktion
---------
Option Explicit
Public

Function ZählenWennAlleSheets(Bereich As Range, Suchtext As String, Optional _
AktivesSheetMitzählen As Boolean = False) As Long
Dim SH As Worksheet
Dim Zähler As Long
Zähler = 0
For Each SH In Worksheets
Select Case SH.Index <> Bereich.Parent.Index Or AktivesSheetMitzählen
Case True
Zähler = Zähler + Application.WorksheetFunction.CountIf(SH.Range(Bereich.Address), Suchtext)
Case Else
End Select
Next
CountIFallSheets = Zähler
End Function

-------------------------------------------------
Diesen Text einfach im Makro-Edtior einfügen und du kannst die Funktion wie eine normale Excelfunktion verwenden. (Am einfachsten erreichst du sie über
Einfügen - Funktionen - Benutzerdefinierte
Die Parameter sind die gleichen wie bei CountIF, allerding kannst du beim eingeben des Bereiches innerhalb des aktuellen Sheets bleiben und mußt.
Die Formel führt dann für den angebenen Zellbereich die CountIF-Funktion in allen anderen Sheets durch.
Über den Parameter AktivesSheetmitzählen kanns du steuern, ob das Sheet, in dem die Formel steht, mit ausgewertet werden soll (diese Eingabe ist Optional, voreingestellt ist false.
Diese Formel hat allerdings eine große Schwäche, von der ich nicht weiß, Wie ich sie beheben soll:
Da die Zellebezüge in den anderen Sheets ja nicht angegben sind, erkennt Excel nicht, wenn sich hier etwas ändert und startet KEINE Neuberechnung.
F9 funktioniert auch nicht!!! Das einzige was hilft, ist in die Zelle zu gehen und Enter zu drücken (quasi den Formeltext neu eingeben).
Vielleicht weiß hier ja jemand Rat?
Gruß, Daniel Eisert
Anzeige
AW: COUNTIF über mehrere sheets
08.02.2006 11:25:09
Eve
Hi Daniel
awsome - so diese function ist super, viele dank.
ganz liebe gruss
Eve
;
Anzeige
Anzeige

Infobox / Tutorial

COUNTIF über mehrere Sheets in Excel


Schritt-für-Schritt-Anleitung

Um die Anzahl der "x" in Zelle F8 über mehrere Sheets zu zählen, kannst du eine benutzerdefinierte VBA-Funktion verwenden. Hier ist, wie du es machst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code in das Modul ein:

    Option Explicit
    Public Function ZählenWennAlleSheets(Bereich As Range, Suchtext As String, Optional AktivesSheetMitzählen As Boolean = False) As Long
       Dim SH As Worksheet
       Dim Zähler As Long
       Zähler = 0
       For Each SH In Worksheets
           Select Case SH.Index <> Bereich.Parent.Index Or AktivesSheetMitzählen
           Case True
               Zähler = Zähler + Application.WorksheetFunction.CountIf(SH.Range(Bereich.Address), Suchtext)
           Case Else
           End Select
       Next
       ZählenWennAlleSheets = Zähler
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Dokument.

  5. In Zelle F8 von Sheet1 kannst du jetzt die Funktion wie folgt verwenden:

    =ZählenWennAlleSheets(F8, "x")

Diese Funktion zählt alle "x" in F8 über alle Sheets in deiner Arbeitsmappe.


Häufige Fehler und Lösungen

  • Fehler: Die Funktion gibt #NAME? zurück.
    Lösung: Stelle sicher, dass der VBA-Code korrekt eingegeben wurde und speichere deine Datei als Makro-fähige Arbeitsmappe (.xlsm).

  • Fehler: Die Zählung wird nicht aktualisiert.
    Lösung: Excel erkennt Änderungen in anderen Sheets nicht automatisch. Du musst in die Zelle gehen und Enter drücken, um die Neuberechnung zu erzwingen.


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch die ZÄHLENWENN-Funktion für jedes Sheet manuell kombinieren. Zum Beispiel:

=ZÄHLENWENN(Sheet1!F8, "x") + ZÄHLENWENN(Sheet2!F8, "x") + ZÄHLENWENN(Sheet3!F8, "x")

Das funktioniert, ist aber weniger flexibel, da du jedes Mal die Formel anpassen musst, wenn du ein neues Sheet hinzufügst.


Praktische Beispiele

Angenommen, du hast drei Sheets mit den Namen "Januar", "Februar" und "März". Um die Anzahl der "x" in Zelle F8 dieser Sheets zu zählen, könntest du die benutzerdefinierte Funktion wie folgt verwenden:

  • In "Januar" F8: "x"
  • In "Februar" F8: "x"
  • In "März" F8: ""

Die Formel in "Gesamt" F8 würde dann so aussehen:

=ZählenWennAlleSheets(F8, "x")

Das Ergebnis wäre 2.


Tipps für Profis

  • Verwende optionale Parameter: Der Parameter AktivesSheetMitzählen in der Funktion ist nützlich, um die aktuelle Sheet-Zählung zu steuern. Setze ihn auf True, wenn du das aktive Sheet in die Zählung einbeziehen möchtest.
  • Regelmäßige Backups: Da du mit VBA arbeitest, mache regelmäßig Backups deiner Arbeitsmappe, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Funktion in anderen Arbeitsmappen verwenden?
Du kannst die Funktion in andere Arbeitsmappen kopieren, indem du den VBA-Code in das Modul der neuen Arbeitsmappe einfügst.

2. Funktioniert die ZählenWennAlleSheets-Funktion in Excel Online?
Nein, VBA-Funktionen sind in Excel Online nicht verfügbar. Du musst die Desktop-Version von Excel verwenden.

3. Kann ich die Funktion auch für andere Zellen verwenden?
Ja, du kannst die Funktion für jede Zelle verwenden, indem du den Zellbereich entsprechend anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige