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

Gibt es sowas wie Rangwenn?

Forumthread: Gibt es sowas wie Rangwenn?

Gibt es sowas wie Rangwenn?
09.06.2022 10:59:25
Christian
https://www.herber.de/bbs/user/153487.xlsx
Hallo,
ich hoffe ihr könnt mir helfen.
Ihr seht ja in der Beispieldatei die Rangformel in Spalte L
Ich würde gerne eine Bedingung hinzufügen, dass nicht die ganze Spalte C als Bezug genommen werden soll, sondern nur die Zeilen, in denen entweder in Spalte H, J oder K eine Zahl größer 0 steht.
Dabei rauskommen soll dann das was in Spalte M steht.
Und deshalb Rang, weil dies nicht die standardmäßige Sortierung der Tabelle ist.
Kann mir da jemand helfen?
Danke
Christian
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Gibt es sowas wie Rangwenn?
09.06.2022 11:39:51
Daniel
Hi
ich weiß jetzt nicht, ob RANG unbedingt einen Zellbezug benötigt. Falls nein, könntest du es mal folgendem probieren:

Rang(C2;Filter(C:C;(H:H>0)+(J:J>0)+(K:K>0);""))
sollte Rang unbedingt einen Zellbezug als zweiten Parameter benötigen, könntest du die Funktionalität auch so durchführen:

=Vergleich(C2;Sortieren(Filter(C:C;(H:H>0)+(J:J>0)+(K:K>0);"");1;-1);0)
bitte mal die Syntax selber prüfen, da ich die notwendige Excelversion nicht habe, kann ich das nicht testen.
ggf musst du auch die offenen Zellbezüge (C:C) durch begrenzte ersetzen ($C$2:$C$1000)
Gruß Daniel
Anzeige
AW: Gibt es sowas wie Rangwenn?
09.06.2022 12:22:42
Christian
Hallo Daniel,
erstmal ich habe diese Version auch nicht, allerdings wird 2021 nicht zur Auswahl angeboten.

=WENN(RANG(C2;Filter(C:C;(H:H>0)+(J:J>0)+(K:K>0));0)0)+(J:J>0)+(K:K>0)); "")) 
Jedenfalls bei dieser Formel wüsste ich nicht, was da syntaxmäßig falsch sein könnte, trotzdem fragt mich Excel, ob ich eine Formel eingeben möchte.

=WENNFEHLER(VERGLEICH(C2;SORTIEREN(FILTER(C$2:C$1000;(H$2:H$1000>0)+(J$2:J$1000>0)+(K$2:K$1000>0);"") ;1;-1);0);"") 
funktioniert.

=WENNFEHLER(WENN(VERGLEICH(C2;SORTIEREN(FILTER(C$2:C$1000;(H$2:H$1000>0)+(J$2:J$1000>0) +(K$2:K$1000>0);"");1;-1);0)0) +(J$2:J$1000>0)+(K$2:K$1000>0);"");1;-1);0);"");"") 
auch.
Vielen Dank Daniel
Gruß
Christian
Anzeige
AW: Gibt es sowas wie Rangwenn?
09.06.2022 12:59:22
Daniel
Hi
ich vermute mal, dass RANG nur mit Zellbereichen arbeitet und nicht mit Matrix-Ergebnissen.
du müsstest also meine zweite Formelvariante probieren (Vergleich, Sortieren, Filter), wobei FILTER und SORTIEREN gemäß der Supportseiten in Excel 2021 vorhanden sein sollten.
die andere Variante wäre, dass du eine Hilfsspalte einfügst mit einer Formel, in der du die Datumswerte übernimmst, wenn die Bedingung erfüllt ist:

=Wenn(Oder(H2>0;J2>0;K2>0);C2;"")
und die Rang-Funktion dann in dieser Hilfsspalte anwendest.
Gruß Daniel
Anzeige
AW: Gibt es sowas wie Rangwenn?
09.06.2022 20:14:54
Christian
Hallo Daniel,
ja gut das hätte ich vielleicht deutlicher sagen sollen, aber die Hilfsspaltenlösung hätte ich auch so hinbekommen. Ich bin halt einfach kein Freund von Hilfsspalten, wo es sich vermeiden lässt. Machen m.E. die Tabelle nur unübersichtlich und wenn man die Spalten ausblendet weiß man irgendwann nimmer für was sie gut waren.
Trotzdem danke für den Hinweis auf diese Lösung.
Zu deiner zweiten Formelvariante habe ich ja bereits geschrieben, dass beide Varianten, die ich da noch hinzugefügt habe, funktionieren.
Mit den $ Zeichen hat auch eine deutliche Verbesserung der Rechenzeit gebracht, auch danke für diesen Hinweis.
Aber da hab ich gleich mal ne Frage
Es gibt ja (falls ich jetzt nicht total daneben liege) auch die Möglichkeit, mit Verweis(9^9... usw. die letzte Zeile der Tabelle zu bestimmen und dann mit C$2:INDEX(C:C usw. den genutzten Zellbereich exakt einzugrenzen. Ist dies schneller als den Zellbereich über C$2:C$1000 zu definieren?
Danke
Christian
Anzeige
AW: Gibt es sowas wie Rangwenn?
10.06.2022 08:26:12
Daniel
das kommt darauf an.
letztenendes wird die Rechenzeit dadurch bestimmt, wieviele Zeilen die Formel durcharbeiten muss. Bei C:C sinds halt 1,04 Mio Zeilen, dh ganz schön viele, je weniger um so schneller.
Wenn du in der Formel einen festen Wert eingibst und diesen zu klein machst, kanns halt mal sein dass du nicht alle Zeilen berücksichtigst ohne dass du es merkst.
von daher ist das mit dem Verweis schon optimal. Ich würde nur den Verweis in einer seperaten Zelle berechnen und in den Formeln auf diese Zelle verweisen. dann muss der Verweis nicht in jeder Formel neu berechnet werden sondern nur einmal, das Ergebnis ist ja immer für alle Zellen gleich.
die andere Methode wäre dass du den Bereich als "intelligente" Tabelle formatierst und in der Formel die Addressierungsart der Tabelle verwendest. die Intelligente Tabelle passt sich ja automatisch an neu hinzugekommene Zeilen an, so dass du so auch automatisch die richtige Größe hast und das nicht berechnen musst..
ob das Praktikabel ist, hängt aber auch davon ab, wie die Daten erzeugt und bereitgestellt werden.
Gruß Daniel
Anzeige
AW: Gibt es sowas wie Rangwenn?
10.06.2022 09:37:56
Christian
Hallo Daniel,
du wirst lachen, das ist die einzige nicht intelligente Tabelle in der Mappe. Das Problem ist. dass ich eine Hilfszeile habe, in der ich für jede Spalte das Maximum der restlichen Spalte berechne. (in der restlichen Spalte stehen dann keine Formeln mehr).
Da hab ich bislang keine Lösung, wie ich das in einer intelligenten Tabelle umsetzen könnte.
Aber du hast meine Vermutung bestätigt, dass das der schnellste Weg sein könnte.
Und wenn ich mit Verweis(9^9... arbeite, sollte es ja auch nix ausmachen wenn ich Zeilen lösche oder hinzufüge.
Gruß
Christian
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Rang mit Bedingungen in Excel: So funktioniert's


Schritt-für-Schritt-Anleitung

Um eine Rangformel in Excel zu erstellen, die nur für bestimmte Bedingungen gilt, kannst Du die folgende Methode verwenden:

  1. Daten vorbereiten: Stelle sicher, dass Deine Daten in den Spalten C, H, J und K korrekt eingegeben sind.

  2. Formel eingeben: Verwende die folgende Formel, um den Rang basierend auf den Bedingungen in den anderen Spalten zu berechnen:

    =RANG(C2;FILTER(C:C;(H:H>0)+(J:J>0)+(K:K>0);"");0)

    Diese Formel gibt Dir den Rang für den Wert in C2 zurück, wenn in den Spalten H, J oder K eine Zahl größer als 0 steht.

  3. Anpassung der Zellbezüge: Achte darauf, die Zellbezüge in der Formel nach Bedarf anzupassen, z. B. von C:C auf $C$2:$C$1000, um die Rechenzeit zu verbessern.


Häufige Fehler und Lösungen

  • Fehler bei der Eingabe: Wenn Excel Dir anzeigt, dass die Formel nicht korrekt ist, überprüfe die Syntax. Ein häufiges Problem ist das Fehlen von Klammern oder das falsche Setzen von Operatoren.
  • Falsche Zellbezüge: Stelle sicher, dass Du nur die relevanten Zellbereiche für Deine Berechnungen verwendest. Das Arbeiten mit dem gesamten Bereich C:C kann die Leistung beeinträchtigen.
  • Matrix-Fehler: Wenn Du mit Matrix-Ergebnissen arbeitest, verwende die FILTER-Funktion, um die Daten vor der Anwendung der RANG-Funktion zu filtern.

Alternative Methoden

Falls Du die RANG-Funktion nicht verwenden möchtest, gibt es alternative Ansätze:

  1. VERGLEICH und SORTIEREN verwenden:

    =VERGLEICH(C2;SORTIEREN(FILTER(C:C;(H:H>0)+(J:J>0)+(K:K>0);"");1;-1);0)

    Diese Methode nutzt die VERGLEICH-Funktion zusammen mit SORTIEREN und FILTER, um den Rang zu ermitteln.

  2. Hilfsspalte einfügen: Du kannst auch eine Hilfsspalte erstellen, die nur die Werte aus Spalte C anzeigt, wenn die Bedingungen in H, J oder K erfüllt sind:

    =WENN(ODER(H2>0;J2>0;K2>0);C2;"")

    Wende dann die RANG-Funktion auf diese Hilfsspalte an.


Praktische Beispiele

Angenommen, Du hast folgende Werte in Spalte C, H, J und K:

C H J K
10 1 0 0
20 0 1 0
30 0 0 1
40 0 0 0

Verwende die folgende Formel in Zelle L2, um den Rang zu berechnen:

=RANG(C2;FILTER(C:C;(H:H>0)+(J:J>0)+(K:K>0);"");0)

Das Ergebnis für die Zeilen, in denen mindestens eine Zahl größer als 0 in H, J oder K steht, wird in Spalte L angezeigt.


Tipps für Profis

  • Verwende $-Zeichen: Das Hinzufügen von $-Zeichen in Deinen Zellbezügen kann die Rechenzeit erheblich verbessern, da Excel dann nur den angegebenen Bereich durchläuft.
  • Intelligente Tabellen: Ziehe in Betracht, Deine Daten als "intelligente Tabelle" zu formatieren. Das ermöglicht es Excel, den Bereich automatisch anzupassen, wenn Du neue Daten hinzufügst oder bestehende entfernst.
  • Referenzzellen für Verweise: Berechne Verweise in einer separaten Zelle, um die Effizienz Deiner Formeln zu steigern. So musst Du den Verweis nicht in jeder Formel erneut berechnen.

FAQ: Häufige Fragen

1. Wie kann ich den Rang ohne Hilfsspalte berechnen? Du kannst die FILTER-Funktion direkt in der RANG-Formel verwenden, um die Bedingungen zu berücksichtigen.

2. Warum sollte ich den Bereich in der Formel begrenzen? Ein begrenzter Zellbereich reduziert die Anzahl der zu bearbeitenden Zeilen und verbessert die Rechenzeit, da Excel weniger Daten durchsuchen muss.

3. Funktioniert das auch in älteren Excel-Versionen? Die Verwendung von FILTER und SORTIEREN ist nur in den neueren Excel-Versionen (2021 und Microsoft 365) verfügbar. In älteren Versionen müsstest Du alternative Methoden verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige