Excel ZÄHLENWENN mit relativen Bezug auf Zelle oberhalb der aktuellen
Hallo,
Ich habe eine Tabelle, in der ich die erste Spalte auf Duplikate überprüfen möchte.
Dazu sorteiere ich diese Spalte (alles Zahlen) in aufsteigender Reihenfolge und möchte nun die "Zählenwenn"-Funktion verwenden, um die Duplikate zu zählen.
Da die Spalte ja sortiert ist kann ich sicher sein, dass gleiche Zahlen immer übereinander liegen, sodass ich in der "Zählenwenn"-Funktion folgendes haben möchte:
=ZÄHLENWENN(Bereich;Inhalt=Inhalt der Zelle oberhalb)
Die Zählenwennfunktion durchläuft ja alle Zellen im Bereich, weshalb (theoretisch) die Funktion "Adresse()" mit "Zeile()" und "Spalte()" als Parameter die aktuelle Zelle referenzieren/sich darauf beziehen.
Das würde bedeuten, dass ich in der "Zählenwenn"-Funktion als zweiten Parameter eigentlich nur folgendes eingeben müsste:
Adresse(Zeile()-1;Spalte())
Funktioniert nicht.
In einigen Beispielen habe ich gesehen, dass Bezüge auf andere Zellen in der "Zählenwenn"-Funktion mit einem "&" beginnen, also habe ich folgendes versucht:
=ZÄHLENWENN(A2:A3000;&ADRESSE(ZEILE()-1;SPALTE()))
Wieder kein Erfolg.
Deshalb die Frage: Wie kann ich in der "Zählenwenn"-Funktion in Excel mich auf eine Zelle, relativ zur aktuellen beziehen? Das hier genannte Beispiel wird sicher auch anders zu lösen gehen, aber den genannten relativen Bezug (also relativ zur Aktuellen Zelle) könnte man in der Zählenwenn schon öfters brauchen. Danke und lg, Springrbua
5 Antworten
So eine ähnliche Frage gab es gestern schon. Vielleicht helfen dir die antworten dort weiter: Excel - Zellen zählen
Der dort beschriebene Weg erspart dir das Sortieren.
Mir fällt momentan nichts ein. Wenn mir etwas einfällt, gebe ich bescheid.
Der Bezug, den man als 2ten Parameter angeben kann, wird sich vermutlich immer nur auf die Zelle der Formel selbst beziehen, nicht aber auf die Zelle, welche aktuell mit "Zählenwenn" überprüft wird... Vermute ich zumindest. Das würde dann den von mir gesuchten Lösungsweg unmöglich machen...
Eine VBA-Prozedur könnte so ähnlich wie folgende aussehen:
Sub ANZAHL_OHNE_DUPLIKATE()
' Test für gleichnamige Funktion
Dim oBereich As Range
Dim oZiel As Range
Set oBereich = Range("A16:A22")
Set oZiel = oBereich.Offset(0, 10) ' Zielbereich sollte unverwendet sein
oZiel.Clear
oBereich.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=oZiel, Unique:=True
Debug.Print Application.WorksheetFunction.CountA(oZiel)
oZiel.Clear
End Sub
Ich habe noch eine Möglichkeit gefunden.
- Kopiere den Bereich mit den Duplikaten in einen freien Hilfsbereicht.
- (Excel 2010) Markiere den kopierten Bereich
- Daten → Duplikate entfernen
- Anschließend mit Anzahl2 zählen
Danke für die Vorschläge und Infos. Sieht so aus, als ob es tatsächlich mit der ZÄHLENWENN-Funktion nicht möglich ist. Ist wohl auch nicht möglich aus der die aktuell geprüfte Zelle herauszu bekommen. Danke trotzdem!
Ich würde es so machen http://www.excelformeln.de/formeln.html?welcher=79
Sortieren von Spalte A ist dabei nicht nötig.
Im übrigen, & wird meines Wissens nur für Verkettungen verwendet. Bei Bezügen findet man dagegen häufig ein $, damit sich der Bezug (Zelle, Zeile oder Spalte) beim kopieren der Formel nicht verschiebt.
Auch eine Möglichkeit. Danke dafür. Allerdings suche ich konkret eben nach einem Weg in der Zählenwenn-Funktion die mich auf die aktuell geprüfte Zelle zu beziehen.
Zählenwenn laüft ja alle Zellen im BEreich durch und führt die Inhaltsprüfung darauf durch. Ich möchte mich nun eben auf diese Zelle, die eben in diesem Moment geprüft wird beziehen.
Mein konkretes Problem der Frage habe ich bereits mit anderen Lösungswegen gelöst, allerdings suche ich eben nach einer Möglichkeit es so zu lösen (rein aus Neugier ob das möglich ist^^)
Lg
Deine Antwort auf die dortige Frage funktioniert wieder mit einer Hilfsspalte.
Das Ganze funktioniert zwar, allerdings suche ich eher nach einer Lösung, in der ich das ganze in der Zählenwenn-Funktion, wie in der Frage erkärt ausdrücken kann.
Aber das ist wahrscheinlich nicht möglich oder?