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

Forumthread: Matrix mit mehrere Kriterien durchsuchen

Matrix mit mehrere Kriterien durchsuchen
07.02.2017 09:48:14
Maximilian
Hallo Zusammen,
ich sitze im Versand und habe hier verschiedene Preislisten unserer Lieferanten vorliegen. Ich möchte nun eine Preissimulation zu jedem einzelnen Lieferanten durchführen um herauszufinden, mit welchem Lieferanten das letzte Jahr für uns am günstigsten gewesen wäre.
Die Preislisten sind alle gleich aufgebaut - ich könnte als schon mit einem Ergebnis eine ganze Menge anfangen.
Mein Problem ist es diese Matrix nach mehreren Kriterien zu durchsuchen, zumal es sich um ein Gewicht-bis(!)-kg handelt.
Eine Formel ist ein muss, da ich im Original ca. 6000 Lieferungen behandeln muss. Wenn es garnicht anders geht, dann auch gerne mit VBA...
Danke für jede Hilfe!
Viele Grüße,
Maximilian
https://www.herber.de/bbs/user/111267.xlsx
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit INDEX(), VERGLEICH(), AGGREGAT() ...
07.02.2017 10:14:54
...
Hallo Maximilian,
... und weiteren Funktionen in einer Matrixfunktion(alität)sformel, die aber keines spez. Formelabschlusses wie bei klassischen Matrixformeln bedarf.
In I2:

=INDEX(A:E;VERGLEICH(MAX(H3*1000;50);A:A);AGGREGAT(15;6;SPALTE(B1:E1)
/ISTZAHL(FINDEN(LINKS(TEXT(G3;"00000");2);B$15:E$15));1))

Formel nach unten kopieren
Gruß Werner
.. , - ...
Anzeige
AW: mit INDEX(), VERGLEICH(), AGGREGAT() ...
07.02.2017 10:32:25
Maximilian
Hallo Werner,
AGGREGAT war mir neu. Vielen Dank für deine (vor allem schnelle) Hilfe!
Es funktioniert einwandfrei!
Super!
Danke dir und dir noch einen schönen Dienstag!
Viele Grüße,
Maximilian
AW: Danke, wünsch ich Dir auch owT
07.02.2017 10:33:13
...
Gruß Werner
.. , - ...
AW: Danke, wünsch ich Dir auch owT
07.02.2017 15:11:10
Maximilian
Hi Werner,
kleine Ergänzung, da es doch nicht einwandfrei funktionierte. Durch
INDEX(A:E;(VERGLEICH(MAX(H3*1000;50);A:A)
wurde einer 71kg (z.B. H3 = 0,071) Ladung, eine 70kg Kategorie zugeordnet. Obwohl diese unter eine 80kg Kategorie fallen müsste. Die recht einfache Lösung:
INDEX(A:E;(VERGLEICH(MAX(H3*1000;50);A:A)+1)
liefert jetzt zwar fast immer die richtige Kategorie, aber wenn die Ladung kleiner als 50kg ist, fällt diese nun dummerweise in die 60kg Kategorie...ärgerlich.
Hast du einen Vorschlag?
Anzeige
AW: dann auch da AGGREGAT() anstelle VERGLEICH ...
07.02.2017 17:03:52
...
Hallo Maximilian,
... und anstelle MAX() natürlich dann entsprechend mit MIN().
So:
=INDEX(A:E;AGGREGAT(15;6;ZEILE(A$3:A$13)/(A$3:A$13>=MIN(H3*1000;200));1);
AGGREGAT(15;6;SPALTE(B1:E1)/ISTZAHL(FINDEN(LINKS(TEXT(G3;"00000");2);B$15:E$15));1))
Gruß Werner
.. , - ...
Anzeige
Danke dir...
08.02.2017 13:15:34
Maximilian
...Werner!
AW: Matrix mit mehrere Kriterien durchsuchen
07.02.2017 10:41:32
Fennek
Hallo,
die Formate sind "gruselig", aber dieser Code list trotzdem die Zone aus:

Sub Fen()
Range("J3:J20").Clear
Re = Application.Transpose(Application.Transpose(Range("B15:E15")))
'Debug.Print Join(Re, "|")
For i = 3 To Cells(Rows.Count, "G").End(xlUp).Row
Debug.Print Format(Left(Cells(i, "G").Text, 2), "00")
Z = Application.Match("*" & Format(Left(Cells(i, "G").Text, 2), "00") & "*", Re, 0)
If IsError(Z) Then Z = Application.Match(Val(Left(Cells(i, "G"), 2)), Re, 0)
'Debug.Print Z
Cells(i, "J") = Z
Next i
End Sub
mfg
Anzeige
AW: hat sich überschnitten, owt
07.02.2017 10:44:50
Fennek
AW: hat sich überschnitten, owt
07.02.2017 13:13:39
Maximilian
Danke für deine Hilfe Fennek!
;

Forumthreads zu verwandten Themen

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

Matrix mit mehreren Kriterien durchsuchen


Schritt-für-Schritt-Anleitung

Um eine Matrix in Excel nach mehreren Kriterien zu durchsuchen, kannst du die Kombination von Funktionen wie INDEX(), VERGLEICH() und AGGREGAT() nutzen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in einer Matrixform vorliegen, wo jede Zeile eine Lieferung und jede Spalte ein Kriterium darstellt.
  2. Formel eingeben: Verwende in einer Zelle die folgende Formel:
    =INDEX(A:E;VERGLEICH(MAX(H3*1000;50);A:A);AGGREGAT(15;6;SPALTE(B1:E1)/ISTZAHL(FINDEN(LINKS(TEXT(G3;"00000");2);B$15:E$15));1))
  3. Formel anpassen: Passen die Zellen (H3, G3) an deine spezifischen Kriterien an.
  4. Nach unten kopieren: Ziehe die Formel nach unten, um sie auf weitere Zeilen anzuwenden.
  5. Ergebnisse überprüfen: Schaue dir die Ergebnisse an und stelle sicher, dass sie korrekt sind.

Häufige Fehler und Lösungen

  • Fehler beim Vergleich: Wenn die Formel nicht die richtigen Kategorien anzeigt, überprüfe, ob die Werte korrekt skaliert sind (z.B. in kg).

    • Lösung: Verwende MIN() statt MAX() in der Formel, um die richtigen Grenzwerte zu berücksichtigen.
  • Falsche Zuordnung: Es kann passieren, dass eine 71 kg Ladung fälschlicherweise der 70 kg Kategorie zugeordnet wird.

    • Lösung: Nutze INDEX(A:E;VERGLEICH(MAX(H3*1000;50);A:A)+1) zur Anpassung.

Alternative Methoden

Wenn du Excel 365 oder Excel 2021 verwendest, kannst du auch die FILTER()-Funktion verwenden, um Daten mit mehreren Bedingungen zu durchsuchen. Ein Beispiel für eine solche Formel könnte so aussehen:

=FILTER(A2:E100; (B2:B100=G1)*(C2:C100=G2); "Keine Ergebnisse gefunden")

Diese Methode ist einfacher und übersichtlicher, besonders bei großen Datenmengen.


Praktische Beispiele

Angenommen, du hast eine Liste von Lieferungen in den Spalten A bis E. Du möchtest die günstigste Option für eine Lieferung mit spezifischen Kriterien finden.

  • Beispiel 1: Du suchst nach dem besten Preis für eine Lieferung zwischen 50 kg und 70 kg.

  • Beispiel 2: Du möchtest alle Lieferungen, die einem bestimmten Lieferanten zugeordnet sind und gleichzeitig ein bestimmtes Gewicht haben. Hierfür kannst du die oben genannten Matrixformeln verwenden.


Tipps für Profis

  • Verwende Namensbereiche: Um die Lesbarkeit deiner Formeln zu verbessern, erstelle Namensbereiche für deine Daten.
  • Kombination von Funktionen: Experimentiere mit der Kombination von INDEX(), VERGLEICH() und AGGREGAT() für komplexere Abfragen.
  • Prüfe auf Fehler: Nutze die Funktion ISTFEHLER(), um sicherzustellen, dass deine Formeln keine Fehler zurückgeben.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bedingungen in einer Matrixformel kombinieren?
Verwende logische Operatoren wie * (für UND) oder + (für ODER) innerhalb deiner Bedingungen.

2. Funktioniert dies auch in älteren Excel-Versionen?
Ja, die beschriebenen Funktionen (INDEX(), VERGLEICH(), AGGREGAT()) sind in den meisten Excel-Versionen verfügbar.

3. Was ist der Vorteil von AGGREGAT() im Vergleich zu anderen Funktionen?
AGGREGAT() bietet die Möglichkeit, Fehler zu ignorieren und ist vielseitig, da es verschiedene Berechnungen wie Min, Max und Summe unterstützt.

Nutze diese Informationen, um effizient mit deinen Excel-Daten zu arbeiten und die besten Ergebnisse aus deinen Preislisten zu erzielen!

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