Supportnet / Forum / Tabellenkalkulation
Excel: Preise aus mehreren Tabellen vergleichen ?
Frage
Hallo,
ich bekomme demnächst Jahresangebote mit Staffelpreisen für verschiedene Zonen. Der Tabellenaufbau ist immer gleich, Zonen in Spalten, die dazugehörigen Preise in Zeilen. Erster Preiseintrag immer in B10.
Bisher hab ich die einzelnen Tabellenblätter zusammen in 1 kopiert und dann mittels Filter ausgewertet.
Kennt jemand eine elegantere (schnellere) Methode ?
(ich stell mir vor so quasi 5 Tabellen übereinanderzulegen und den besten Preis dann auf 1 anzuzeigen ???)
Danke schon im Voraus für Tipps.
LG
Marisa
Antwort 1 von coros
Hallo Marisa,
arbeite doch mit der Funktion
=MIN()
Mit der Funktion kannst Du, ohne die Daten in ein Tabellenblatt kopieren zu müssen, den kleinsten Wert in einem Bereich zu ermitteln. Bei 5 Tabellenblättern und einem Bereich A1:A10 würde das z.B. wie folgt aussehen
=MIN(Tabelle1!$A$1:$A$10;Tabelle2!$A$1:$A$10;Tabelle3!$A$1:$A$10;Tabelle4!$A$1:$A$10;Tabelle5!$A$1:$A$10)
Eventuell bringt Dich das ja etwas weiter.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
arbeite doch mit der Funktion
=MIN()
Mit der Funktion kannst Du, ohne die Daten in ein Tabellenblatt kopieren zu müssen, den kleinsten Wert in einem Bereich zu ermitteln. Bei 5 Tabellenblättern und einem Bereich A1:A10 würde das z.B. wie folgt aussehen
=MIN(Tabelle1!$A$1:$A$10;Tabelle2!$A$1:$A$10;Tabelle3!$A$1:$A$10;Tabelle4!$A$1:$A$10;Tabelle5!$A$1:$A$10)
Eventuell bringt Dich das ja etwas weiter.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von rainberg
Hallo Marisa,
der Ansatz von Oliver ist gut.
Die Formel könntest Du wie folgt optimieren
=MIN(Tabelle1:Tabelle5!A1:A10)
Die in der Formel angesprochenen Tabellen müssen hintereinander im Register liegen.
Es dürfen keine Tabellen dazwischen liegen, die nicht ausgewertet werden sollen.
Gruß
Rainer
der Ansatz von Oliver ist gut.
Die Formel könntest Du wie folgt optimieren
=MIN(Tabelle1:Tabelle5!A1:A10)
Die in der Formel angesprochenen Tabellen müssen hintereinander im Register liegen.
Es dürfen keine Tabellen dazwischen liegen, die nicht ausgewertet werden sollen.
Gruß
Rainer
Antwort 3 von Saarbauer
Hallo,
da ich es so verstehe, dass Tabelle 1 nur die Zusamenstellung ist müsste dan die Formel so lauten:
=MIN(Tabelle2:Tabelle5!A1:A10)
aber sonst ist es ok
Gruß
Helmut
da ich es so verstehe, dass Tabelle 1 nur die Zusamenstellung ist müsste dan die Formel so lauten:
=MIN(Tabelle2:Tabelle5!A1:A10)
aber sonst ist es ok
Gruß
Helmut
Antwort 4 von rainberg
Hallo Helmut,
da muss ich widersprechen!
1. Es müssen 5 Tabellen ausgewertet werden, nach Deiner Formel wären es nur 4.
2. Oliver hat im Ansatz zufällig Tabelle1 bis Tabelle5 angegeben.
Das ist ja nur beispielhaft, die Tabellen könnten auch andere Namen haben.
Wichtig ist nur, dass zwischen Starttabelle und Zieltabelle keine Tabelle liegt, die nicht an der Auswertung teilnimmt.
3. In welcher Tabelle die Auswertungsformel steht ist gleichgültig, wichtig ist nur dass sie nicht in einem Bereich steht, der ausgewertet werden soll. Also nicht, wie im Beispiel, im Bereich A1:A10.
Gruß
Rainer
da muss ich widersprechen!
1. Es müssen 5 Tabellen ausgewertet werden, nach Deiner Formel wären es nur 4.
2. Oliver hat im Ansatz zufällig Tabelle1 bis Tabelle5 angegeben.
Das ist ja nur beispielhaft, die Tabellen könnten auch andere Namen haben.
Wichtig ist nur, dass zwischen Starttabelle und Zieltabelle keine Tabelle liegt, die nicht an der Auswertung teilnimmt.
3. In welcher Tabelle die Auswertungsformel steht ist gleichgültig, wichtig ist nur dass sie nicht in einem Bereich steht, der ausgewertet werden soll. Also nicht, wie im Beispiel, im Bereich A1:A10.
Gruß
Rainer
Antwort 5 von MarisaS
Hallo an alle,
danke vielmals für die Tipps, bin leider noch nicht dazugekommen, es zu testen - ich melde mich wieder.
LG
Marisa
danke vielmals für die Tipps, bin leider noch nicht dazugekommen, es zu testen - ich melde mich wieder.
LG
Marisa
Antwort 6 von MarisaS
Hallo an alle,
danke, klappt so weit, ich hab zwar noch nicht genug Angebote um Echt zu testen, aber mal ne kleine Test gebaut, und zwar so:
..............................Zone1....Zone2....Zone3
A10: Minimum.....65,00.....64,00.....63,00
A11: +500 kg.......30,00.....29,00.....28,50
A12: +1000 kg.....22,00.....21,00.....20,80
A13: +2000 kg.....20,00.....19,00.....18,00
und mit =MIN(Tabelle2:Tabelle5!B10) bekomme ich den besten Preis aller Tabellenblätter für das Minimum in Zone1 (Ergebnis im 1.Blatt).
Bitte wie kann ich jetzt noch dazu angezeigt bekommen, aus welchem Tabellenblatt der Bestpreis kommt ? (kann ich die Schrift in den Blättern bunt einfärben, und dann im Ergebnis die Farbe mit übernehmen ?), bzw. habt ihr bessere Ideen ?
Danke + LG
Marisa
danke, klappt so weit, ich hab zwar noch nicht genug Angebote um Echt zu testen, aber mal ne kleine Test gebaut, und zwar so:
..............................Zone1....Zone2....Zone3
A10: Minimum.....65,00.....64,00.....63,00
A11: +500 kg.......30,00.....29,00.....28,50
A12: +1000 kg.....22,00.....21,00.....20,80
A13: +2000 kg.....20,00.....19,00.....18,00
und mit =MIN(Tabelle2:Tabelle5!B10) bekomme ich den besten Preis aller Tabellenblätter für das Minimum in Zone1 (Ergebnis im 1.Blatt).
Bitte wie kann ich jetzt noch dazu angezeigt bekommen, aus welchem Tabellenblatt der Bestpreis kommt ? (kann ich die Schrift in den Blättern bunt einfärben, und dann im Ergebnis die Farbe mit übernehmen ?), bzw. habt ihr bessere Ideen ?
Danke + LG
Marisa
Antwort 7 von rainberg
Hallo Marisa,
wenn Du auch das Tabellenblatt anzeigen willst, funktioniert meine Formel natürlich nicht.
Um eine entsprechende Formel aufbauen zu können, müsstest Du allerdings ein Beispieldatei hochladen, ansonsten kann ich Dir leider nicht helfen.
Gruß
Rainer
wenn Du auch das Tabellenblatt anzeigen willst, funktioniert meine Formel natürlich nicht.
Um eine entsprechende Formel aufbauen zu können, müsstest Du allerdings ein Beispieldatei hochladen, ansonsten kann ich Dir leider nicht helfen.
Gruß
Rainer
Antwort 8 von MarisaS
Antwort 9 von coros
Hallo Marisa,
das könnte man z.B. mit nachfolgendem Makro erledigen, dass eine Bildschirmmeldung ausgibt, in welcherm Blatt der Minwert ermittelt wurde. Anstelle der Meldung kann der Wert auch in einer Zelle ausgegeben werden.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
das könnte man z.B. mit nachfolgendem Makro erledigen, dass eine Bildschirmmeldung ausgibt, in welcherm Blatt der Minwert ermittelt wurde. Anstelle der Meldung kann der Wert auch in einer Zelle ausgegeben werden.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.
Option Explicit
Sub Minwertermittlung()
Dim iSheets As Integer
Dim varMinWert As Variant
Dim varMinWertGesichert As Variant
Dim strBlattName As String
For iSheets = 2 To Sheets.Count
varMinWert = Application.WorksheetFunction.Min(Sheets(iSheets).Range("B10:B" _
& Sheets(iSheets).Range("A65536").End(xlUp).Row))
If iSheets = 2 Then
varMinWertGesichert = varMinWert
strBlattName = Sheets(iSheets).Name
End If
If varMinWert < varMinWertGesichert Then
varMinWertGesichert = varMinWert
strBlattName = Sheets(iSheets).Name
End If
Next
'Anstelle der Messagebox könnte hier eine Zellangabe stehen, in der man den Wert ausgeben kann, _
z.B. für Tabellenblatt 1 Zelle A1 so:
'Sheets(1).Range("A1") = "Der Minwert " & varMinWertGesichert & " befindet sich in Tabellenblatt " & strBlattName
MsgBox "Der Minwert " & varMinWertGesichert & " befindet sich in Tabellenblatt " & strBlattName
End Sub
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 10 von rainberg
Hallo Marisa,
bei der Auswertung mit einer komplexen Formel würde die Brühe teuerer als das Fleisch, da noch einige Hilfsbereiche nötig wären.
Habe deshalb eine erweiterbare Alternative erstellt.
Die Ausgangswerte werden per Formel in die Auswertungstabelle geholt und die Minima per Bedingter Formatierung gekennzeichnet.
Teste mal selbst, ob Dir das genügt.
Wenn nicht, dann kommt wohl nur noch ein Makro infrage.
http://rapidshare.com/files/157674797/re_Preisvergleich.xls.html
Gruß
Rainer
bei der Auswertung mit einer komplexen Formel würde die Brühe teuerer als das Fleisch, da noch einige Hilfsbereiche nötig wären.
Habe deshalb eine erweiterbare Alternative erstellt.
Die Ausgangswerte werden per Formel in die Auswertungstabelle geholt und die Minima per Bedingter Formatierung gekennzeichnet.
Teste mal selbst, ob Dir das genügt.
Wenn nicht, dann kommt wohl nur noch ein Makro infrage.
http://rapidshare.com/files/157674797/re_Preisvergleich.xls.html
Gruß
Rainer
Antwort 11 von MarisaS
Hallo Ihr 2,
danke vielmals für die Hilfe. Ich muss gestehen, dass ich das mit dem Makro noch nicht probiert hab, weil ich noch nie mit Makros gearbeitet habe und das irgendwie ziemlich kompliziert ausschaut.
Die Lösung von Rainer hat den Nagel auf den Kopf getroffen - ich bin ganz hingerissen - genau von soetwas hab ich geträumt !!!
@Rainer:
wenn du ein bisschen Zeit hast, könntest du mir noch so ein Blatt bauen, wo die 3 untereinander stehen (denn in Echt hab ich viele Zonen, nicht nur 3, dann wirds undruckbar), oder mir die Formel erklären, so dass ich es selbst machen kann.
Danke ganz herzlich
LG
Marisa
danke vielmals für die Hilfe. Ich muss gestehen, dass ich das mit dem Makro noch nicht probiert hab, weil ich noch nie mit Makros gearbeitet habe und das irgendwie ziemlich kompliziert ausschaut.
Die Lösung von Rainer hat den Nagel auf den Kopf getroffen - ich bin ganz hingerissen - genau von soetwas hab ich geträumt !!!
@Rainer:
wenn du ein bisschen Zeit hast, könntest du mir noch so ein Blatt bauen, wo die 3 untereinander stehen (denn in Echt hab ich viele Zonen, nicht nur 3, dann wirds undruckbar), oder mir die Formel erklären, so dass ich es selbst machen kann.
Danke ganz herzlich
LG
Marisa
Antwort 12 von Saarbauer
Hallo,
das Makro von @ coros etwas abgewandelt unter Berücksichtigung der Tabelle von @ rainberg
du erhlst dann deine Testdatei aus AW 8 nur auf dem ersten Blatt die Werte farbig angelegt, wie auf dem jeweiligem Tabellenblatt
Gruß
Helmut
das Makro von @ coros etwas abgewandelt unter Berücksichtigung der Tabelle von @ rainberg
Sub Minimumermittlung()
For i = 10 To 19
For j = 2 To 4
For iSheets = 2 To Sheets.Count
If iSheets = 2 Then
MinWert = Sheets(iSheets).Cells(i, j).Value
Farbe = Sheets(iSheets).Cells(i, j).Font.Color
Else
If MinWert > Sheets(iSheets).Cells(i, j).Value Then
MinWert = Sheets(iSheets).Cells(i, j).Value
Farbe = Sheets(iSheets).Cells(i, j).Font.Color
End If
End If
Next
Sheets(1).Cells(i, j).Value = MinWert
Sheets(1).Cells(i, j).Font.Color = Farbe
Next
Next
End Sub
du erhlst dann deine Testdatei aus AW 8 nur auf dem ersten Blatt die Werte farbig angelegt, wie auf dem jeweiligem Tabellenblatt
Gruß
Helmut
Antwort 13 von rainberg
Hallo Marisa,
hier die gewünschte Änderung
http://rapidshare.com/files/157710221/re2_Preisvergleich.xls.html
Gruß
Rainer
hier die gewünschte Änderung
http://rapidshare.com/files/157710221/re2_Preisvergleich.xls.html
Gruß
Rainer
Antwort 14 von rainberg
@ Helmut
mal ein Hinweis:
Du solltest bei Deinem Makros immer OptionExplicit verwenden und die Variablen ordnungsgemäß deklarieren.
Gruß
Rainer
mal ein Hinweis:
Du solltest bei Deinem Makros immer OptionExplicit verwenden und die Variablen ordnungsgemäß deklarieren.
Gruß
Rainer
Antwort 15 von MarisaS
D A N K E V I E L M A L S !!!
(morgen gehts an die Echt - diesmal freu ich mich schon drauf, früher war das immer mühselig).
LG
Marisa
(morgen gehts an die Echt - diesmal freu ich mich schon drauf, früher war das immer mühselig).
LG
Marisa