Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ZÄHLENWENN() und 3D-Bezüge

Forumthread: ZÄHLENWENN() und 3D-Bezüge

ZÄHLENWENN() und 3D-Bezüge
19.05.2005 18:50:56
Manuel
Hallo!
Ich habe folgendes Problem:
Ich habe Excel Files mit bis zu 100 Arbeitsblättern. Ich möchte nun zum Beispiel zählen, in wie vielen Blättern ein Bestimmter Text in der Zelle A5 auftritt.
Ich hab's probiert mit:
=ZÄHLENWENN(blatt1:blatt88!A5;"1-1-1-2.")
und
=ZÄHLENWENN(blatt1!A5:blatt88!A5;"1-1-1-2.")
bekomme aber beide male einen #WERT! Fehler.
Kann mir irgendwer helfen?
mfg
Manuel
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ZÄHLENWENN() und 3D-Bezüge
19.05.2005 19:09:42
Boris
Hi Manuel,
ich hab das seinerzeit mal ne UDF geschrieben. Kleiner Haken (hab ich grade bemerkt): Sie funktioniert nur dann, wenn die Blattnamen ohne Leerzeichen sind.
Option Explicit

Function Zählen3D(Bezug As Variant, Suchtext As String) As Long
Dim s           As String       'Formelstring
Dim WsStart     As String       'Name Erstes Blatt
Dim WsEnde      As String       'Name Letztes Blatt
Dim iCount      As Integer      'Zähler vom 1. bis zum letzten Blatt
Dim i           As Integer      'Index des 1. Blattes
Dim j           As Integer      'Index des letzten Blattes
Dim B           As Boolean      'Prüfung, ob Mehrfachbezug vorhanden
Dim sBereich    As String       'Bereich auslesen bei Mehrfachmarkierung
Const MB        As String = "*:*!*,*" 'typische Syntax für Mehrfachbereich
s = Application.Caller.Formula 'Formel auslesen
'Prüfen, ob Mehrfachmarkierung vorliegt
B = s Like MB
If B Then 'Falls Mehrfachbezug vorhanden in der Form: Tabelle1:Tabelle3!A1:C100
'Formelstring innerhalb der Klammern auslesen und an s übergeben
s = Mid(s, InStr(1, s, "(") + 1, InStr(1, s, ")") - InStr(1, s, "(") - 1)
'Erstes Blatt auslesen
WsStart = Trim(Left(s, InStr(1, s, ":") - 1))
'Letztes Blatt auslesen
WsEnde = Trim(Mid(s, InStr(1, s, ":") + 1, InStr(1, s, "!") - InStr(1, s, ":") - 1))
'Zellbereich auslesen
sBereich = Trim(Mid(s, InStr(1, s, "!") + 1, InStr(1, s, ",") - InStr(1, s, "!") - 1))
'Index des 1. Blattes ermitteln
i = Worksheets(WsStart).Index
'Index des letzten Blattes ermitteln
j = Worksheets(WsEnde).Index
'Schleife über alle tangierten Blätter
For iCount = i To j
Zählen3D = Zählen3D + WorksheetFunction.CountIf(Sheets(iCount).Range(sBereich), Suchtext)
Next iCount
Else 'Falls kein Mehrfachbezug vorhanden: Einfaches ZÄHLENWENN
Zählen3D = WorksheetFunction.CountIf(Bezug, Suchtext)
End If
End Function

Anzuwenden mit folgender Syntax:
=ZÄHLEN3D(Tabelle1:Tabelle3!C5:F10;"u")
Grüße Boris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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