Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestpreis herausfinden

Bestpreis herausfinden
07.05.2020 05:11:00
Adrian
Hallo zusammen,
Stehe aktuell vor einem Problem, was ich alleine nicht hinbekomme.
Es geht eine Preisübersicht.
Darin enthalten sind Preise von insgesamt 10 Anbietern
Diese 10 Anbieter haben Preise abgegeben für 5 unterschiedliche Staffelmengen.
Bedeutet also, dass ich insgesamt 50 Spalten habe mit unterschiedlichen Preisen
Nun möchte ich gerne 5 Ergebnis-Spalten haben, welche mir jeweils den besten Preis anzeigt.
Es soll aber noch geprüft werden, ob eine 0 vorhanden ist. Wenn ja, soll diese Zelle als "Leer" betrachtet werden.
Hatte dies bis anhin immer mit Hilfs-Spalten gelöst - diese gäbe aber dann nochmals 50 Spalten
(=WENN(SpalteA=0;"";SpalteA)
~f~
Nun will ich gerne eine direkte Formel. Versucht habe ich dies mit einer Kombination aus MIN + WENN.
~f~
(=MIN(WENN(SPALTEA>0;SPALTE;"");WENN(SPALTEB>0;SPALTEB;"")
~f~
Dies ergibt mir aber einen #WERT, wenn ich irgendwo 0 habe
Als das nicht geklappt hat habe ich es mit einer Matrix-Formel probiert:
~f~
{=MIN(WENN(SPALTEA:SPALTEC>0;SPALTEA:SPALTEC))}
Dies würde funktionieren, allerdings müssen alle Spalten nebeneinander platziert sein.
Dies ist bei meiner Tabelle leider nicht der Fall :-(
Hat sonst noch jemand eine Idee?
Habe zu Testzwecken eine Datei erstellt - allerdings "nur" mit 3 verschiedenen Anbietern
Danke vorab

27
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestpreis herausfinden
07.05.2020 07:49:49
MCO
Moin!
Warum geht das nicht?`
=MIN(WENN(C6>0;C6;9999);WENN(H6>0;H6;9999);WENN(M6>0;M6;9999))

Gruß, MCO
AW: Bestpreis herausfinden
07.05.2020 09:40:33
Adrian
Hallo MCO,
Danke für deinen Input.
Habe ich mir heute Morgen auch überlegt.
Allerdings kann es sein, wenn ich mal Preise über 10000 habe, werden diese nicht mehr berücksichtigt.
Man könnte die Zahl auch noch höher definieren - wollte mich da aber nicht festlegen und dynamisch bleiben..
Gruss
AW: oder mit AGGREGAT() ohne {} und WENN() ...
07.05.2020 08:26:12
neopa
Hallo Adrian,
... in S6 einfach so:
=WENNFEHLER(AGGREGAT(15;6;$C6:$Q6/($C6:$Q6&gt0)/(TEIL($C$5:Q$5;2;1)=TEIL(S$5;3;1));1);"")
nach unten kopiert sie sich ja allein. Dann noch nach rechts kopieren.
Dies Formel 1:1 umgesetzt für die Definition Deiner formatierte ("intelligente") Tabelle, wird natürlich durch die Feldnamen länger:

=WENNFEHLER(AGGREGAT(15;6;Tabelle1[@[M1-1]:[M5-3]]/(Tabelle1[@[M1-1]:[M5-3]]&gt0) /(TEIL(Tabelle1[[#Kopfzeilen];[M1-1]:[M5-3]];2;1)=TEIL(Tabelle1[[#Kopfzeilen];[BP1-E]];3;1));1);"")

Gruß Werner
.. , - ...
Anzeige
AW: oder mit AGGREGAT() ohne {} und WENN() ...
07.05.2020 09:38:18
Adrian
Hallo Werner,
Vielen Dank für deinen Vorschlag!!
Das ist ja sensationell! - ohne Wenn + {}
Die Funktion Aggregat kannte ich bis anhin nicht.
Eine Frage noch zur Verständigung:
Was bewirken die "/" Zeichen innerhalb des Array?
Sind das Bedingungen, welche immer auf des ersten Bereich angewendet werden?
Gruss
AW: oder mit AGGREGAT() ohne {} und WENN() ...
07.05.2020 11:39:47
Adrian
Hallo Werner,
Bin immer noch am "Bauklötze" staunen bei deiner Formel :-)
Während dem Anpassen auf die eigentliche Tabelle ist mir noch etwas aufgefallen, dass ich nicht verstehe:
Wie wird das gemacht dass alle M1 / M2 / etc. Spalten fixiert sind und die BP Spalten nicht?
Danke vorab für deinen Input...
Anzeige
AW: hierzu nun noch ...
07.05.2020 14:51:53
neopa
Hallo Adrian,
... die "Fixierung" wird erzielt dadurch, dass ein Bereichddefinition angeben wird (welches durch den ":" gekennzeichnet ist), während bei den "BP-Spalten"-Bezug nur auf eine Zelle (und damit relativ) Bezug genommen wird.
Gruß Werner
.. , - ...
AW: zu Deinen Fragen hier ...
07.05.2020 14:45:52
neopa
Hallo Adrian,
... die "/" in der Formel sind Operatoren und bewirken natürlich eine Division in dem Fall mit einer Wahrheitsmatrix, die aus der Bedingungsgleichung sich ergeben. Da wo die Bedingung(en) nicht eingehalten ist/sind, ergibt sich ein FALSCH was demzufolge eine Division durch 0 führt. Der dadurch an dieser Stelle entstehende (interne) Fehler #DIV/0! wird durch die 6, das 2. Argument der Funktion AGGREGAT() einfach ignoriert. So kann die Formel das Ergebnis aus den Divisionen ermitteln, wo die Bedingungsvergleiche ein WAHR, also eine Division durch 1 ergeben.
Gruß Werner
.. , - ...
Anzeige
AW: zu Deinen Fragen hier ...
08.05.2020 09:01:07
Adrian
Hallo Werner,
Danke für deine Erklärungen. Das ja wirklich eine tolle Funktion.
Habe eben noch festgestellt, dass ich "WENNFEHLER" auch nicht gekannt habe :-)
Habe es immer mit WENN(ISTFEHLER(etc.) gelöst - was die Formel ja immer extrem lang macht.
Musste bei Tabelle nun noch etwas erweitern:
Dazugekommen sind nun noch die Materialgruppen.
Bedeutet, dass bei den Spalten von "Anbieter 1" verschiedene Anbieter Preise abgeben können:
Für die Materialgruppe "ho" trage ich die Preise vom Anbieter "aaa" ein
Für die Materialgruppe "me" trage ich die Preise vom Anbieter "bba" ein
Für die Materialgruppe "be" trage ich die Preise vom Anbieter "cca" ein
Bei den Spalten von Anbieter 2 + 3 kommen dann noch die Preise von anderen Anbieter dazu.
Nun habe ich bei diesen verschiedenen Anbieter unterschiedliche Versandkosten.
In einem zweiten Tabellenblatt gibt es dazu eine Übersicht.
Diese zeigt die Namen der Anbieter auf inkl. Versandkosten als Multiplikator.
Von der Struktur her haben die Anbieter noch eine Positionsnummer:
Materialgruppe "ho" beginnt immer mit "1."
Materialgruppe "me" beginnt immer mit "2."
etc.
Alle Anbieter welche im Bereich "L1" auftauchen dürfen haben die zweite Positionsnummer mit "1"
Alle Anbieter welche im Bereich "L2" auftauchen dürfen haben die zweite Positionsnummer mit "2"
etc.
Dies vorab mal zur Erklärung der Struktur.
Nun möchte ich aber, dass die einzelnen Preise verglichen werden inklusive Berücksichtung der Versandkosten, was das ganze nicht einfacher macht.
Ich habe mir mal Hilfsspalten erstellt um den jeweiligen Versand-Multiplikator zu ermitteln - schrittweise über 3 Spalten. Bei der 4. Spalte habe ich dann einfach die Formeln aneinander gereiht. Die Formel ist extrem lang - bin überzeugt dass es irgendwie noch kürzer geht.
Der Fehler an der ganzen Sache ist nun:
-dass zuerst die "Rohpreise" verglichen werden
-dann der Bestpreis ausgesucht wird
-dann der dazugehörige Multiplikator ermittelt wird
-dann das ganze verrechnet wird
Nun müsste es aber folgendermassen sein:
-bei den "Rohpreisen" wird zuerst der dazugehörige Multiplikator verrechnet
-dann werden die "neuen" Preise verglichen
-dann wird der Bestpreis ermittelt und als Ergebnis ausgegeben.
Kann mir da jemand weiterhelfen?
Danke vorab
Anzeige
AW: das erweitert Deine bisherige Zielstellung ...
08.05.2020 19:52:44
neopa
Hallo Adrian,
... nicht unerheblich, ist nicht gerade einfach aber möglich. Dazu wäre aber weitere Abstimmung notwendig. Unabhängig davon muss ich Dir mitteilen, dass Deine Formel in AC6 nur zufällig das richtige Ergebnis liefert, was Du leicht erkennen kannst, wenn Du in F7 mal auch eine 14 einschreibst, dann wäre mit Deiner Formel das Ergebnis in AC7 falsch.
Das richtige Ergebnis würde z.B. mit folgender Formel in AC6 ermittelt:
=WENN([@[BP1-E]]="";"";INDEX(Angebote[[#Kopfzeilen];[L1]:[M5-3]];AGGREGAT(15;6;(SPALTE(Angebote[#Kopfzeilen])-2)/(Angebote[@[M1-1]:[M5-3]]=[@[BP1-E]])/(TEIL(Angebote[[#Kopfzeilen];[M1-1]:[M5-3]];2;1)=TEIL(Angebote[[#Kopfzeilen];[BP1-E]];3;1));1)))
Gruß Werner
.. , - ...
Anzeige
AW: das erweitert Deine bisherige Zielstellung ...
10.05.2020 13:00:28
Adrian
Hallo Werner,
Danke für deinen Input für AC6 - stimmt das hätte nicht immer das richtige Ergebnis ergeben.
Bitte entschuldige habe mich wahrscheinlich zu ungenau ausdrückt, bzw. die Excel nicht sauber angepasst.
Ziel von mir ist, dass bevor die Preise verglichen werden, der korrekte Multiplikator genommen wird und dieser zuerst verrechnet wird.
Erst danach sollen die Preise verglichen werden und der günstigste herausgesucht werden - und dies alles in einer Formel.
Eine Möglichkeit habe ich gefunden, aber für das benötige ich 15 Hilfsspalten - bei denen wird zuerst der Preis verrechnet mit dem Multiplikator - danach werden die Preise verglichen.
Bei der zweiten Möglichkeit habe ich eine komplete Formel schreiben können, allerdings finde ich diese noch zu lang ?!
Was meinst Du?
Gruss
Adrian
Habe die Excel nochmals angepasst
Anzeige
AW: so noch nicht eindeutig ...
10.05.2020 13:32:04
neopa
Hallo Adrian,
... denn Du hast als "besten Preis in W7 18,9€ vorgegeben. Aber für M1-2 ergibt sich 18,75€ (aus 15,0*1,25).
Es reicht dann demzufolge mE auch nicht nur den Bestpreis zu ermitteln, es müsste dann auch der Anbieter dazu zugewiesen sein. Aber normalerweise tut man das mW nicht für jedes Teilangebot (hier Datenzeile) vornehmen.
Ich kann es mir dann aber frühestens morgen wieder anschauen.
Gruß Werner
.. , - ...
AW: so noch nicht eindeutig ...
10.05.2020 18:19:34
Adrian
Hallo Werner,
...stimmt! In dieser Konstellation wäre M1-2 günstiger - da ist meine Formel noch nicht ausgereift :-(
Für diese Tabelle ist dies so ausdrücklich gewünscht - soll eine Tabelle sein die immer wieder verwendet werden kann.
Kein Problem, würde mich freuen hier eine Lösung zu finden...
Gruss
Adrian
Anzeige
AW: eine Lösung gibt es immer ...
10.05.2020 20:15:14
neopa
Hallo Adrian,
... auch für das was Du als Ziel anstrebst. Aber dafür würde ich hier nicht mit nur einer Formel arbeiten, wie Du es angedacht hast.
Hier ist mE angebracht, in einer zusätzlichen Tabelle zunächst mit einer einfachen SVERWEIS()-Formel alle Angebotswerte mit dem jeweiligen Faktor zu multiplizieren und dann diese Werte so auswerten, wie es bisher schon für die Basis-Angebots-Werte getan wurde. So bleiben die Formeln einfach und auch die Ergebniswerte transparent.
Gruß Werner
.. , - ...
AW: eine Lösung gibt es immer ...
12.05.2020 01:18:13
Adrian
Hallo Werner,
Das muss ich mir wohl selber auch eingestehen, dass es mit Hilfsspalten übersichtlicher bliebt - auch auf Zeit.
Habe da mal was gemacht, was funktioniert, aber noch zu wenig dynamisch ist:
Punkt 1:
Habe nun für jeden Einzelpreis Hilfsspalten gemacht mit dem bereits verrechneten Multiplikator.
Das funktioniert, ausser dass ich die Spalte zwingend "fix" einschreiben musste (Zahl 8)
Gibt es da eine Alternative?
Ziel ist es die Formel trotzdem noch nach rechts ziehen / nach unten ziehen zu können + die Möglichkeit bei der Anbieter-Tabelle eine Spalte einzufügen.
Punkt 2:
Dann habe ich den Bestpreis noch ergänzt mit folgenden Spalten:
BP1-L: Anbieter zum Bestpreis
BP1-P: Position des Anbieters (Eindeutigkeit - wenn Anbieter bei 2 Materialgruppen vorkommt)
BP1-G1: Multiplikator 1
BP1-G2: Multiplikator 2
Hier hätte ich gerne eine Formel, welche ich wieder nach rechts ziehen kann.
Man kann selbstverständlich den Titelnamen anpassen, wenn nötig.
Habe hierfür aber noch keine gute Lösung gefunden.
Weisst Du da noch eine?
Diese ganzen Angaben werden dann später für eine Pivot-Tabelle / Auswertung benötigt.
Gruss
Adrian
Anzeige
AW: das wäre einfacher möglich ...
12.05.2020 11:01:19
neopa
Hallo Adrian,
... zunächst hätte ich keine zusätzlichen Hilfsspalten in der vorhandenen Tabelle angelegt sondern eine Hilfstabelle direkt unterhalb Deiner Datentabelle angelegt (Vorteil: beim Einfügen neuer Datenwerte je Anbieter oder weitere Anbieter bedarf es nur einmalig das Einfügen von entsprechenden Spalten und das ganze bleibt etwas übersichtlicher)
Es geht aber so wie Du es jetzt vorgesehen hast einfacher.
Die Formel für L1-P z.B. einfach so:
in F11: =INDEX(Tabelle4[Pos];VERGLEICH(E11;Tabelle4[Anbieter];0))
und diese auch nach den weiteren L#-P kopieren.Doch wozu diese zusätzlichen Spalten überhaupt?
Die Preise mit Multiplikator1 lsssen sich bei Deiner Datenstruktur auch schon einfacher ermitteln:
In AA11:
=SVERWEIS(INDEX(Tabelle1[#Alle];;VERGLEICH("L"&RECHTS(INDEX(Tabelle1[#Kopfzeilen];SPALTE()-2);1);Tabelle1[#Kopfzeilen];0));Tabelle4[[Anbieter]:[Multi1]];2;)*INDEX(Tabelle1[#Alle];;VERGLEICH(TEIL(INDEX(Tabelle1[#Kopfzeilen];SPALTE()-2);3;9);Tabelle1[#Kopfzeilen];0))
und nach rechts kopierbar.
Gruß Werner
.. , - ...
Anzeige
AW: das wäre einfacher möglich ...
12.05.2020 13:20:58
Adrian
Hallo Werner,
Probiere die Formeln gerne aus. Danke Dir - melde heute Nachmittag nochmals
Bezüglich den Hilfsspalten kann ich Dir noch nicht folgen - wie willst Du dies genau mit einer Hilfstabelle umsetzten?
Gruss
Adrian
AW: anstelle von Dir eingefügten Hilfsspalten ...
12.05.2020 13:33:11
Dir
Hallo Adrian,
... hätte ich unterhalb Deiner vorhandenen Datentabelle eine neue Tabelle erstellt, in der die Werte aus der darüber befindlichen vorhandenen Datenwerttabelle mit dem Faktor multipliziert würden.
Wenn also z.B. für einen oder je Anbieter Werte und weitere Anbieter hinzukommen müssten, müsstest Du nur entsprechender Spalte Spalte/n einfügen und die wären dann in der Datentabelle und der unterstehenden Hilfstabelle mit einmal gleich realisierbar.
Gruß Werner
.. , - ...
AW: anstelle von Dir eingefügten Hilfsspalten ...
13.05.2020 12:02:06
Dir
Hallo Werner
Ah, verstehe.
Die Mustertabelle ist nur ein kleiner "Abklatsch" von der eigentlichen Tabelle.
Diese hat dann gut und gerne 1000 Zeilen.
Somit müsste ich diese natürlich auch erweitern. Ginge sicherlich auch.
Finde ich auch ein guter Ansatz - wäre von alleine nicht darauf gekommen.
Die Übersicht in der eigentlichen Tabelle ist dann sicher besser.
Werde nun einfach die Hilfsspalten ausblenden. :-)
Danke schon mal für deine beiden Formel.
Beim Ausprobieren bei der eigentlichen Tabelle musste ich dann feststellen,
dass ein Anbieter auch mehrfach vorkommen kann. Zum Beispiel in der Materialgruppe 2+6.
Aus diesem Grund setzte ich den Suchbegriff zusammen.
Ob diese Formel trotzdem noch gekürzt werden kann- weiss ich ehrlich gesagt nicht.
Vielleicht hast Du da noch eine Idee?
Habe bis jetzt keine Lösung gefunden.
Diese zusätzliche Tabelle hilft mir dann zukünftigen für die eindeutige Suche, da die Positionsnummer eindeutig ist. Der Name des Anbieter ist wiederum für die Verwendung/Übersicht gewünscht.
Die zusätzlichen Tabellen in AR-AU dienen dann zur Auswertung/Cockpit/Übersicht.
Anteil Anbieter am gesamten Projekt (ABC-Analyse)
Vergleich Anbieter zum Bestpreis.
Gruss Adrian
AW: in der von Dir neu eingestellten Datei ...
13.05.2020 17:50:09
Dir
Hallo Adrian,
... lässen sich die Formeln für die L#-P -Spalten mE wie folgt vereinfachen:
=INDEX(Tabelle1[[MGr.]:[MGr.]];)&"-"&TEIL(INDEX(Tabelle1[#Kopfzeilen];SPALTE()-2);2;1)
Mir ist allerdings noch immer nicht klar, wozu Du diese Spalten überhaupt benötigst.
Gruß Werner
.. , - ...
AW: in der von Dir neu eingestellten Datei ...
13.05.2020 22:40:20
Dir
Hallo Werner,
Wusste gar nicht, dass man die Index-Funktion ohne Angabe der Zeilen + Spalten einsetzten kann :-)
Eine Frage noch zu deiner Formel:
Warum ist der Spaltenbereich 2-mal erfasst bei der ersten Index-Funktion:
...Tabelle1[[MGr.]:[MGr.]]...
Wenn ich es so eingebe:
...Tabelle1[MGr.]... bekomme ich die gleichen Ergebnisse
Diese Spalte brauche ich, wenn der Anbieter 2-mal vorkommt in verschiedenen Materialgruppen.
Ist dann erst wichtig, wenn beim gleichen Anbieter unterschiedliche Multiplikatoren zum Einsatz kommen, was durchaus vorkommen kann.
Mit deiner Formel wird einfach immer der erste gefundene Wert genommen.
Wenn ich über die Pos.-Nummer suche ist diese eindeutig.
Mit Hilfe von deinen Formeln bin ich aber guter Dinge, dass ich den Anbieter und die Pos.-Nummer in eine Zelle verknüpfe (z.B. bba_2-1) und dann über die Funktion "=Rechts" die korrekte Pos. Nummer herauslese und vergleiche...
AW: da Du formatierte Tabellen nutzt ...
13.05.2020 13:12:47
neopa
Hallo Adrian,
... wäre es kein großes Problem, die Hilfstabelle weit genug unterhalb anzuordnen.
Bei der jetzt von Dir benannten Menge von auszuwertenden Daten ist zwar eine Formelauswertung auch noch vertretbar aber man könnte/sollte auch über einen PowerQuery-Lösung nachdenken.
Allerdings sind wir wohl spätestens hier an einem Punkt angelangt, wo es normale kostenfreie Forenhilfe weit übersteigt. Hinzu kommt, dass der thread spätestens morgen früh nicht mehr in der aktuellen Forumsliste angezeigt wird und ich dadurch nur bedingt noch mitbekomme, wenn Du hierauf antwortest.
Was genau gemeint ist mit: "... dass ein Anbieter auch mehrfach vorkommen kann..." ist momentan auch nicht verständlich. Solltest Du z.B. hierzu einen neuen thread im Forum aufmachen, kannst Du mich ja im Betreff mit z.B. "@ neopa, Fortsetzungsfrage ... " ansprechen.
Gruß Werner
.. , - ...
per Arrayformel
07.05.2020 07:11:32
WF
Hi,
in S6:
{=MIN(WENN(TEIL(S$5;3;1)=TEIL($C$5:$Q$5;2;1);WENN($C6:$Q6>0;$C6:$Q6)))}
nach rechts und runter kopieren
WF

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige