Gleichen, nächst höheren Wert bei zwei Suchkriterien
#1
Hallo zusammen,

ich arbeite seit gut einer Woche an einer Lösung, doch leider finde ich keine..Ich hoffe, ihr könnt mir helfen!

Folgende Problemstellung:

Suchwert = Mengenstaffel (definiert)

Spalte A = 1. Suchkriterium,  Werte können mehrfach gleich vorkommen (Materialnummer)
Spalte B = 2. Suchkriterium, Werte können nur 1 mal vorkommen, abhängig von Anzahl 1. Suchkriterium (Mengenstaffel)
Spalte C = Ergebnis (Preis)

Das Problem liegt darin, dass im 2. Suchkriterium entweder

1. der gleiche Suchwert in Spalte B gefunden werden soll
2. der nächst größere Wert in Spalte B gefunden werden soll, falls nicht vorhanden
3. oder falls Suchwert >MAX-Wert in Spalte B, dann soll der MAX-Wert aus Spalte B gefunden werden

Ich habe hierzu eine Beispieldatei hinzugefügt.

Danke allen schon mal vorab!

Grüße Heily


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 10,83 KB / Downloads: 3)
Top
#2
Hallo
In Spalte A / B / C stehen keine Werte

ein Suchkriterium steht in der Zelle J3.
Wenn ich das richtig verstehe, so soll der gesuchte Werte aus Spalte F größer oder gleich diesem Wert sein.

Aber
in welcher Zelle steht das andere Suchkriterium?
Wo soll das andere Suchkriterium gesucht werden? in Spalte E?

Gruß Holger
Top
#3
Hallo Holger,

vielen Dank für deine Nachricht.
Ich habe eben nochmal die Beispieldatei aktualisert und hochgeladen.

Das 1. Suchkriterium ist J3
Das 2. Suchkriterium ist I3

Wenn die Materialnummer gefunden wurde, dann soll die dazugehörige Mengenstaffel gefunden werden. Allerdings sind diese unterschiedlich. Falls in Spalte F der Wert in J3 1:1 gefunden wird, dann soll der Preis ausgegeben werden. Falls J3 > als MAX-Wert in Spalte F, dann soll der Preis zum MAX-Wert der unter I3 gesuchten Mengenstaffel wiedergegeben werden.Falls J3 zwischen 2 Mengenstaffeln liegen sollte, dann den Preis zur nächst höheren Preisstaffel...

Ich hoffe, ich konnte es erklären.

Danke und Gruß
Top
#4
Hallo zusammen,

hier mal ein Beispiel, wie die Ergebnisse lauten sollten...


Angehängte Dateien
.xlsx   Beispiel mit Ergebnissen.xlsx (Größe: 11,31 KB / Downloads: 6)
Top
#5
Moin

In Tabelle1 müssen die Daten sortiert sein:
1. Materialnummer aufsteigend sortiert
2. Mengenstaffel aufsteigend sortiert


Code:
=INDEX(Table1[Preis];AGGREGAT(15;6;(ZEILE(Table1[Preis])-ZEILE(Table1[[#Kopfzeilen];[Preis]]))/(Table1[Materialnummer]=I3)/(Table1[Mengenstaffel]>=J3);1))
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • HeilyDioh
Top
#6
Hallo
ich würde das dann aber in drei kleinen Schritten lösen. Finde ich eleganter wie so eine Mammut-Formel.

Gruß Holger

Nachtrag:
Enthält Matrixformel: Umrandende { geschweifte Klammern } nicht mit eingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!


Angehängte Dateien
.xlsx   Beispiel2.xlsx (Größe: 18,85 KB / Downloads: 9)
[-] Folgende(r) 1 Nutzer sagt Danke an echo für diesen Beitrag:
  • HeilyDioh
Top
#7
Hallo, warum nicht einfach(er)..?

PHP-Code:
=MAX(INDEX(G2:G10*((E2:E10=I3)*F2:F10>=J3);;)) 

oder..:

PHP-Code:
=MMULT(AGGREGAT({14;15};6;G2:G10/(F2:F10>=J3)/(E2:E10=I3);1);{1.-1}) 
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#8
Zitat:3. oder falls Suchwert >MAX-Wert in Spalte B, dann soll der MAX-Wert aus Spalte B gefunden werden

Hallo Jörg ,die erste Formel erfüllt die Bedingung nicht (Ergebnis 0), die Zweite gibt dann #Zahl zurück
Gruß Holger
Top
#9
Hi Holger, okay, okay, aber ich denke trotzdem relativ einfach machbar..:

PHP-Code:
=MAX(INDEX(G2:G10*((E2:E10=I3)*F2:F10>=MIN(J3;MAX(INDEX(F2:F10*(E2:E10=I3);))));;)) 


Arbeitsblatt mit dem Namen 'Sheet1'
EFGHIJKLMNOPQ
1MaterialnummerMengenstaffelPreisAAB
2AAB1005,00 €MaterialnummerMengenstaffelPreisMax-Wert (AAB)>= 501gefunden in Zeile:EER
3AAB806,00 €AAB5012,00 €500100.0003QQW
4AAB5002,00 €UUT
5EER3505,00 €Alles in einer Formel2,00 €
6EER15010,00 €2,00 €
7PPU2009,00 €
8QQW40100,00 €
9QQW100030,00 €
10UUT20010,00 €
11

ZelleFormel
M2="Max-Wert ("&I3&")"
N2=">= "&J3
K3{=INDEX(Table1[Preis];VERGLEICH(I3&"#"&WENN(N3>M3;M3;N3);Table1[Materialnummer]&"#"&Table1[Mengenstaffel];0))}
M3{=MAX((Table1[Materialnummer]=I3)*Table1[Mengenstaffel])}
N3{=MIN(WENN((Table1[Materialnummer]=I3)*(Table1[Mengenstaffel]>=J3);Table1[Mengenstaffel];100000))}
P3{=VERGLEICH(I3&"#"&WENN(N3>M3;M3;N3);Table1[Materialnummer]&"#"&Table1[Mengenstaffel];0)}
K5{=INDEX(Table1[Preis];VERGLEICH(I3&"#"&WENN(MIN(WENN((Table1[Materialnummer]=I3)*(Table1[Mengenstaffel]>=J3);Table1[Mengenstaffel];100000))>MAX((Table1[Materialnummer]=I3)*Table1[Mengenstaffel]);MAX((Table1[Materialnummer]=I3)*Table1[Mengenstaffel]);MIN(WENN((Table1[Materialnummer]=I3)*(Table1[Mengenstaffel]>=J3);Table1[Mengenstaffel];100000)));Table1[Materialnummer]&"#"&Table1[Mengenstaffel];0))}
K6=MAX(INDEX(G2:G10*((E2:E10=I3)*F2:F10>=MIN(J3;MAX(INDEX(F2:F10*(E2:E10=I3);))));;))
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
[-] Folgende(r) 1 Nutzer sagt Danke an Jockel für diesen Beitrag:
  • HeilyDioh
Top
#10
Hallo shift-del ,

vielen Dank! Die Lösung werde ich mir anschauen!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste