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

Forumthread: SVERWEIS und MAX() kombinieren

SVERWEIS und MAX() kombinieren
06.03.2015 09:48:38
Daniel
Hallo zusammen,
ich stehe vor einem Problem. Meine Tabelle hat drei Spalten. In der ersten Spalte stehen Namen und in der zweiten Spalte stehen Kalenderwochen.
Jeder Name kann öfters in der Liste vorkommen und die zugeordnete Kalenderwoche ist immer unterschiedlich.
Jetzt möchte ich in der dritten Spalte den größten Wert der entsprechenden Kalenderwoche auswerfen.
Ein kleines Beispiel
Name/KW/KWMax
A 03 45
C 10 33
C 33 33
A 05 45
B 12 51
A 45 45
A 29 45
B 01 51
B 51 51
B 09 51
C 27 33
C 13 33
Eine Matrixformel löst dieses Problem super schnell:
{=KGRÖSSTE(($A$2:$A$200000=A2)*$B$2:$B$200000;1)}
Aber wie ihr schon seht ist die Tabelle sehr groß und wird auch immer erweitert... In 200000 Zellen stehen Matrixformeln und das schafft der Rechner nicht wirklich zügig.
Habt ihr Ideen wie man diese Berechnung ohne Matrixformel lösen kann?
Ich danke euch schon mal.
Gruß Daniel

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
200.000 Formeln runterkopieren ist Blödsinn
06.03.2015 10:00:25
WF
Hi,
dann müsstest Du ja, um das Maximum einer KW zu finden ewig weit runtersrollen, bis die das erste mal erscheint.
Nimm Deine Formel (einmal) - die gesuchte KW steht in H1
{=KGRÖSSTE(($A$2:$A$200000=H1)*$B$2:$B$200000;1)}
WF

AW: 200.000 Formeln runterkopieren ist Blödsinn
06.03.2015 10:35:13
Daniel
Hey,
im Grunde hast du recht. Allerdings ist diese Tabelle die Basis für eine Pivot-Tabelle und damit die Auswertung richtig funktioniert benötige ich die KW in jeder Zeile :(

Anzeige
AW: SVERWEIS und MAX() kombinieren
06.03.2015 10:14:25
Klexy
Lass die Spalte KWmax ganz weg und mach eine neue Tabelle daneben.
Spalte G: alle Namen (jeweils nur 1x) und Spalte H deine Formel etwas abgewandelt
Name | MaxKW
A | =KGRÖSSTE(($A$2:$A$200000=G2)*$B$2:$B$200000;1)
B | =KGRÖSSTE(($A$2:$A$200000=G3)*$B$2:$B$200000;1)
C | =KGRÖSSTE(($A$2:$A$200000=G4)*$B$2:$B$200000;1)

Anzeige
Korrektur
06.03.2015 10:15:10
Klexy
Mit geschwungener Klammer natürlich.

AW: SVERWEIS und MAX() kombinieren
06.03.2015 10:49:41
Daniel
Das wäre noch eine ganz gute Alternative. Es kommen aber auch immer neue Namen hinzu. Die Daten werden per VBA automatisch importiert.
Kann ich mir mit Formeln eine Liste aller Namen erstellen lassen?

AW: SVERWEIS und MAX() kombinieren
06.03.2015 13:12:44
Klexy
Mit Pivot-Tabelle geht das.
Beim Import von neuen Namen kannst du ja eine Prüfung ins Makro einbauen und die neuen Namen in die neue Liste reinschreiben lassen.

Anzeige
AW: SVERWEIS und MAX() kombinieren
06.03.2015 10:57:40
Daniel
Hi
wenn du deinen Rechner entlasten willst, musst du selber etwas arbeiten:
1. sichere die ursprüngliche Reihenfolge. (in einer Hilfsspalte in jeder Zeile die Zeilennummer eintragen, hierzu in die erste Zeile 1, in die zweite Zeile 2 eintrageng, dann beide Zellen markieren und nach unten ziehen)
dies ist nur erforderich, wenn die originalreihenfolge benötigt wird und diese nicht mit den vorhandenen Daten sortiert werden kann.
2. sortiere nach Namen (Prio 1) und KW (Prio 2) aufsteigend.
3. trage in Spalte C folgende Formel ein (Formel für C2)
=Wenn(A2=A3;C3;B2)
4. kopiere Spalte C und füge sie an gleicher Stelle als Wert ein
5. sortiere in die ursprüngliche Reihenfolge zurück und lösche die Sortierspalte.
- das ist braucht die wenigste Rechenzeit, weil Excel immer nur noch 2 benachbarte Zellen miteinander vergleichen muss und nicht mehr jede Zelle mit allen anderen (und das mehrfach)
- Im Sortieren ist Excel sehr schnell.
- im Vertigen Endergebnis stehen keine Formeln sondern Festwerte.
Gruß Daniel

Anzeige
AW: SVERWEIS und MAX() kombinieren
06.03.2015 11:03:40
Daniel
noch ne händische alternative:
1. Erstelle von der vorhanden Tabelle eine Pivottabelle und werte die Kalenderwoche nach Namen mit der Funktion MAX aus
2. spiele dann in der Spalte C die Maximale KW aus der Pivottabelle mit Hilfe des SVerweises zu.
wenn du die Pivotauswertung gleich sortiert, kannst du auch die schnelle Variante des SVerweises verwenden (4. Parameter = WAHR)
Gruß Daniel

Anzeige
AW: SVERWEIS und MAX() kombinieren
06.03.2015 12:04:05
Daniel
Super Idee, ich hab deine erste Variante gewählt. Die Datei läuft jetzt richtig gut... ;) Vielen Dank.

AW: SVERWEIS und MAX() kombinieren
06.03.2015 12:15:17
Daniel
du kannst auch bei der zweiten Variante hinterher die Formeln in Spalte C durch ihren Wert ersetzen, um die gleiche Performance zu erhalten.
bei der zweiten Variante sparst du dir das Umsortieren.
Und wenn die Datei regelmässig erweitert wird, musst du nur die Pivottabelle aktualiseren und die Formel neu eintragen.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

SVERWEIS und MAX() optimal kombinieren


Schritt-für-Schritt-Anleitung

Um den höchsten Wert einer Kalenderwoche für jeden Namen in Excel zu ermitteln, kannst Du die folgenden Schritte befolgen:

  1. Daten vorbereiten: Stelle sicher, dass Deine Daten in drei Spalten organisiert sind: Name, Kalenderwoche und eine leere Spalte für den maximalen Wert (KWMax).

    Beispiel:

    Name | KW | KWMax
    A    | 03 | 
    B    | 12 | 
    C    | 10 | 
  2. Formel einfügen: In der Zelle für KWMax (z.B. C2) gib die folgende Formel ein:

    =KGRÖSSTE(($A$2:$A$200000=A2)*$B$2:$B$200000;1)
  3. Formel nach unten kopieren: Ziehe die untere rechte Ecke der Zelle nach unten, um die Formel auf die anderen Zellen in der Spalte anzuwenden.

  4. Matrixformel anpassen: Um die Rechenleistung zu optimieren, kannst Du die Formel so anpassen, dass sie nur einmal eingegeben wird und das Maximum einer bestimmten Kalenderwoche (z.B. in H1) zurückgibt:

    {=KGRÖSSTE(($A$2:$A$200000=H1)*$B$2:$B$200000;1)}
  5. Daten sortieren: Wenn Du die Berechnung beschleunigen möchtest, sortiere Deine Daten nach Name und Kalenderwoche, bevor Du die Formel anwendest.


Häufige Fehler und Lösungen

  • Fehler: #WERT!: Dieser Fehler tritt auf, wenn die Formel nicht korrekt eingegeben wurde. Achte darauf, die Matrixformel mit STRG + SHIFT + ENTER einzugeben.

  • Fehler: Unzureichende Rechenleistung: Wenn Du 200.000 Formeln hast, kann Excel langsam werden. Überlege, ob Du die Berechnung auf weniger Zeilen beschränken kannst oder die Daten in eine Pivot-Tabelle überführen möchtest.


Alternative Methoden

  1. Pivot-Tabellen: Eine einfache Möglichkeit, den maximalen Wert einer Kalenderwoche pro Name zu ermitteln, ist die Verwendung einer Pivot-Tabelle. Erstelle eine Pivot-Tabelle, ziehe den Namen in die Zeilen und die Kalenderwoche in die Werte, wähle als Aggregatfunktion "MAX".

  2. VBA-Makro: Wenn Du häufig neue Daten importierst, kannst Du ein VBA-Makro schreiben, das automatisch die Liste der Namen aktualisiert und den höchsten Wert berechnet.


Praktische Beispiele

Angenommen, Du hast folgende Daten:

Name | KW
A    | 03
A    | 10
B    | 12
B    | 05
C    | 15

Um den sverweis maximalwert für jeden Namen zu ermitteln, verwende die oben genannten Formeln. Das Ergebnis in der KWMax-Spalte wird wie folgt aussehen:

Name | KW | KWMax
A    | 03 | 10
A    | 10 | 10
B    | 12 | 12
B    | 05 | 12
C    | 15 | 15

Tipps für Profis

  • Optimierung der Rechenleistung: Anstatt die Formeln für jede Zeile zu verwenden, erstelle eine separate Liste der eindeutigen Namen und wende die Formel nur auf diese Liste an.

  • Verwendung von WENN-Funktionen: Du kannst die WENN- und SVERWEIS-Funktionen kombinieren, um zusätzliche Bedingungen zu prüfen. Zum Beispiel:

    =WENN(A2="A";SVERWEIS("A";$A$2:$C$200000;2;FALSCH);"")
  • Dynamische Bereiche: Verwende die Funktion „Tabelle“ in Excel, um dynamische Bereiche zu erstellen, wodurch Deine Formeln automatisch aktualisiert werden, wenn neue Daten hinzugefügt werden.


FAQ: Häufige Fragen

1. Wie kann ich den höchsten Wert für einen bestimmten Namen ermitteln?
Verwende die Formel =KGRÖSSTE(($A$2:$A$200000="Name")*$B$2:$B$200000;1) und ersetze "Name" durch den Namen, für den Du den maximalen Wert ermitteln möchtest.

2. Was kann ich tun, wenn Excel zu langsam wird?
Überlege, in Pivot-Tabellen zu arbeiten oder die Daten in kleinere Bereiche zu unterteilen, um die Rechenlast zu reduzieren.

3. Ist es möglich, auch den niedrigsten Wert zu ermitteln?
Ja, Du kannst die Funktion KLEINSTE verwenden, um den sverweis mit minimum kombinieren zu realisieren. Zum Beispiel:

=KLEINSTE(($A$2:$A$200000=A2)*$B$2:$B$200000;1)

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