Office - Word, Excel und Co. 9.753 Themen, 41.597 Beiträge

OpenOffice Calc: Frachtberechnung nach Zone & Gewichtsklasse

Olaf19 / 16 Antworten / Baumansicht Nickles

Hallo zusammen!

Vielleicht eine etwas seltsame Frage zu so später Stunde, noch dazu am beginnenden Wochenende, aber ich versuche es trotzdem *g*. Es geht um 2 Tabellen in OpenOffice Calc:

Die erste Tabelle enthält sämtliche Postleitzahlen von 01000 - 99999; nicht einzeln, sondern in über 100 "Von-Bis"-Bereiche gegliedert, z.B. 20000 - 23949. Jedem der Bereiche ist eine "Zone" von 1-9 zugeordnet; Zone 1 ist Großraum Hamburg und angrenzende Gebiete des norddeutschen Raumes, Zone 9 ist Süddeutschland, vereinfacht gesagt. Ganz platt: Je weiter weg von Hamburg, desto höher ;-)

Die zweite Tabelle hat die Zonen 1 - 9 als Spaltenüberschriften und 16 Gewichtsklassen - z.B. 2.000 - 2.500 kg - als Zeilendefinition. In der Tabelle selbst stehen die Preise für LKW-Frachten nach Zone & Gewicht. So kann man z.B. nachschauen, wie viel der LKW-Transport von 1.100 kg Ware von Hamburg nach Zone 5 kostet.

Mein Ziel: Ich möchte erreichen, dass die Eingaben von Postleitzahl und Gewicht in 2 bestimmte Zellen in einer 3. Zelle die Frachtkosten auswerfen... so eine einfache Frage, nach der langen Vorrede ;-))

Erst dachte ich, dass man das mit SVERWEIS machen kann - aber die Beschreibung dieses Ausdrucks in der OpenOffice-Hilfe hat diese Hoffnung zunichte gemacht. Hat jemand eine bessere Idee?

THX
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
Borlander Olaf19 „OpenOffice Calc: Frachtberechnung nach Zone & Gewichtsklasse“
Optionen

Nabend Olaf,
also prinzipiell sollte man sowas doch mit (doppeltem) SVERWEIS lösen können - zumindest mit MSO. Suche nach PLZ ist ja eigentlich klar, darf natürlich nicht nach dem genauen wert gesucht werden - AFAIR war das ansonsten >= (was hier prima passen würde, andernfalls könnte man die Tabelle immer noch umdrehen) - damit hätten wir dann also schonmal die Zone :-)

Was uns dann noch fehlt wäre die Spalte für das Gewicht, hierzu nehmen wir einfach noch eine 3. Tabelle hinzu, in der die Gewichtsklassen in selber Form wie bereits die PLZ-Bereiche notiert werden.

Am Ende können mit dann mit der Zone + der SpaltenNr des Gewichtes nach dem Preis suchen - entweder per SVERWEIS, oder indem wir den Zell-Bezug per Formel erzeugen...


Gruß
bor

bei Antwort benachrichtigen
Olaf19 Borlander „Nabend Olaf, also prinzipiell sollte man sowas doch mit doppeltem SVERWEIS...“
Optionen

Morgen Borl und alle die's interessiert,

ich hab die Lösung, und es war gar nicht so schwer. Es ist nur furchtbar kompliziert zu erklären, aber das bin ich dir / euch nun schuldig.

- Schritt 1: Zone ermitteln
In den Spalten A, B und C haben wir "PLZ von...", "PLZ bis..." und die dazu passende Zone. Jetzt habe ich in D1 folgende Abfrage eingebaut:

WENN(UND(Import.$C$1>=WERT(A1);Import.$C$1

Die Tabelle "Import" enthält in Zelle C1 die Postleitzahl des Empfängers. Wenn diese zwischen A1 und B1 liegt, ist die Wenn-Bedingung erfüllt, die bereits in C1 stehende Zonennummer wird in D1 noch einmal ausgegeben, ansonsten wird dort ein Hochkomma eingesetzt (damit man sieht, dass die Zelle nicht einfach leer ist, sondern eine Formel enthält). Diese Formel kopiere ich von Zeile D1 bis ganz nach unten (D106). Dann berechne ich die Summe aller Werte in Spalte D in der Tabelle "Import", Zelle D2 (also schräg rechts unter der Kundenpostleitzahl)

- Schritt 2: Preistabelle kopieren und modifizieren
Die Tabelle mit den Preisen nach Zone und Gewicht kopiere ich ein Stück tiefer und lösche alle Preise heraus, d.h. ich habe jetzt eine leere Tabelle, nur die Überschriften (Zone 1 - 9) sind noch da, sowie die Zeilenbenennungen (kg bis maximal). Ganz oben links in Zelle F22 (=Zone 1 bis 50 kg) setze ich jetzt folgende Formel ein:

WENN(UND(Import.$D$2=F$1;Import.$B$32>$E21;Import.$B$32

Das bedeutet:
- wenn die Zone des Kunden (Import.D2) = der Zone in der Spaltenüberschrift ist und
- wenn das Gewicht der Sendung (Import.B32) größer ist als die Gewichtsklasse eine Zeile höher (E21) und
- wenn das Gewicht der Sendung kleiner oder gleich der am links angegebenen Gewichtsklasse ist (E22)
...dann wird der Wert aus F2 (=Zone 1 bis 50 kg aus der Originaltabelle oben auf der Seite, Betrag in €) ausgegeben. Diese Formel kopiere ich von F22 bis N22 (Zone 1 - 9) sowie von F-N22 (kleinste Gewichtsklasse) bis F-N37 (höchste Gewichtsklasse).

Jetzt ist die ganze Tabelle mit Hochkommas ausgefüllt - nur am Schnittpunkt, wo die richtige Zone auf die passende Gewichtsklasse trifft, steht der Wert in €uro. Zum guten Schluss berechne ich die Summe aller Werte in dieser Tabelle und gebe sie in der Tabelle "Import" aus - et voilà ;-)

War doch einfach oder?! :-D

THX
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
Borlander Olaf19 „Lösung gefunden!! *jubel*“
Optionen
War doch einfach oder?! :-D
So gehts natürlich auch irgendwie, ABER gegenüber einer Lösung mit SVERWEIS hat den großen Nachteil, daß man nur über genau das eine Formular Daten abfragen kann - nicht von beliebigen...

Btw.: Hab es aus Neugier gerade nochmal mit Excel durchgespielt: Mit SVERWEIS für Zone (Zone =SVERWEIS(PLZ_Eingabe;PLZ_Tabelle;ZonenSpaltenIndex;WAHR)) + WVERWEIS zum nachschlagen des Preises (=WVERWEIS(Gewichts_Eingabe;Preis_Tabelle;Zone+2;WAHR)) in Abhängigkeit vom Gewicht...


Gruß
Borlander
bei Antwort benachrichtigen
Olaf19 Borlander „ So gehts natürlich auch irgendwie, ABER gegenüber einer Lösung mit SVERWEIS...“
Optionen

Hmm, komisch - ich hatte mir die Beschreibung für SVERWEIS in Open Office durchgelesen und dabei den Eindruck gewonnen, dass dieser Ausdruck unbrauchbar für meine Zwecke ist. Schaue ich mir bei Gelegenheit nochmal in Ruhe an... aber nicht mehr an diesem Wochenende ;-)

CU + THX
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
neanderix Olaf19 „Hmm, komisch - ich hatte mir die Beschreibung für SVERWEIS in Open Office...“
Optionen

Er ist nicht unbrauchbar, du musst nur die Spaltenstruktur entsprechend der funktionsweise von SVERWEIS anpassen.

Volker

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
Borlander neanderix „Er ist nicht unbrauchbar, du musst nur die Spaltenstruktur entsprechend der...“
Optionen

Nabend Volker,
also nach Olafs Beschreibung der vorhandenen Tabellen, ist da IMO keine weitere Anpassung mehr erforderlich. Bin mal von folgendem Format ausgegangen:
PLZ: 3-Spaltig, mit den Spalten: PLZmin, PLZmax, Zone; aufsteigend sortiert nach PLZmin, und ohne Lücken zwischen den den PLZ-Bereichen...

Bei der Preistabelle zweizeilige Spaltenkäfte mit Gewichtmin in Zeile 1, Gewichtmax in Zeile 2, ebenfalls lückenlos aufsteigend sortiert, sowie die Zone als Zeilenkopf...


Gruß
Borlander

bei Antwort benachrichtigen
neanderix Borlander „Nabend Volker, also nach Olafs Beschreibung der vorhandenen Tabellen, ist da IMO...“
Optionen

sverweis kann aber AFAIK mit getrennten "von" "bis" Spalten nichts anfangen, weshalb ich die Postleitzahlen in _eine_ spalte schreiben würde, dann sverweis per Parameter anweisen, "unscharf" zu suchen.

Vol 'oder übersehe ich da was?' ker

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
Olaf19 neanderix „sverweis kann aber AFAIK mit getrennten von bis Spalten nichts anfangen, weshalb...“
Optionen

Hallo ihr beiden,

denke auch, dass es an dieser Von-bis-Geschichte scheitert. In der OO-Hilfe heißt es gleich am Anfang, Senkrechte Suche mit Referenz auf rechts benachbarte Zellen. Diese Funktion prüft die erste Spalte einer Matrix auf einen bestimmten Wert - und das hilft mir schon mal nichts, da ich ja 2 Spalten bei den PLZ habe. Es wäre allerdings zu überlegen, ob man die nicht einfach auf 1 reduzieren könnte. Denn bei Inhalten wie 20000 - 23959 und 23960 - 24999 ist ja immer eine der Spalten redundant - es ist schließlich klar, dass auf 23959 eine Zeile tiefer und eine Spalte weiter links die 23960 folgt.

Bei den Gewichtsklassen hatte ich diese Reduktion bereits vorgenommen, also aus 1 - 50 kg habe ich einfach 50 gemacht und dies als "maximal 50" interpretiert.

Nach wie vor bringe ich meine Aufgabenstellung aber noch nicht mit der SVERWEIS-Funktion zusammen. In der Beschreibung heißt es weiter:

Das Suchkriterium ist der Wert, nach dem in der ersten Spalte der Matrix gesucht wird.
Matrix ist der Bezug, der aus mindestens zwei Spalten bestehen soll.
Index ist die Nummer der Spalte innerhalb der Matrix, in der der zurückzugebende Wert steht. Die erste Spalte hat die Nummer 1.
Sortiert ist ein optionaler Parameter,... (etc.)

Suchkriterium ist schon mal schlecht, denn ich suche nicht nach genau der PLZ, die ich in der Kundenadresse vorgegeben habe, sondern nach zwei(!) PLZ, die diese umschließen. Mit welchem Parameter kann ich eine "Unschärfe" vorgeben, und arbeitet die Funktion dann immer noch 100% exakt? Immerhin, es geht um bares Geld ;-)

Was mir auch nicht klar ist: Wenn die Matrix aus mehr als 2 Spalten besteht, nach welchen Kriterien entscheidet OO-Calc dann, in welcher Spalte das Suchergebnis zu finden ist? Bei der PLZ-Zonen-Zuordnung ist das noch nicht relevant, da es immer nur 1 Zone pro PLZ-Bereich gibt - aber in der 2. Tabelle mit den Gewichtsklassen gibt es ja für jede Zone 1 - 9 eine eigene Spalte. Gesucht wird dann nach dem richtigen Wert für die Kombination aus Gewicht und Zone.

Meine Lösung funktioniert zwar, aber sie ist nicht gerade elegant... deswegen juckt mich das schon irgendwie noch mit dem SVERWEIS.

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
Borlander Olaf19 „SVERWEIS“
Optionen
Suchkriterium ist schon mal schlecht, denn ich suche nicht nach genau der PLZ, die ich in der Kundenadresse vorgegeben habe, sondern nach zwei(!) PLZ, die diese umschließen. Mit welchem Parameter kann ich eine "Unschärfe" vorgeben, und arbeitet die Funktion dann immer noch 100% exakt? Immerhin, es geht um bares Geld ;-)
Bei MSO geht das mit dem letzten (optionalen) Paramter, mit dem kann festlegen ob exakt gesucht werden soll. Bei nicht exakter Suche sollten die Werte aufsteigend sortiert sein, dann bekomst Du als Ergebnis die Zeile mit dem nächstkleineren Wert (passt also prima zum PLZ-Problem mit zwei spalten, so für alle PLZ eine Zone zugeordnet ist)...

Was mir auch nicht klar ist: Wenn die Matrix aus mehr als 2 Spalten besteht, nach welchen Kriterien entscheidet OO-Calc dann, in welcher Spalte das Suchergebnis zu finden ist?
Dazu gibst Du den Spaltenindex mit, bzw. bei meiner Lösung WVERWEIS den Zeilenindex (für die gewählte Gewichtsspalte)...


Gruß
bor
bei Antwort benachrichtigen
neanderix Borlander „SVERWEIS und Suche ohne exakte Übereinstimmung“
Optionen
Was mir auch nicht klar ist: Wenn die Matrix aus mehr als 2 Spalten besteht, nach welchen Kriterien entscheidet OO-Calc dann, in welcher Spalte das Suchergebnis zu finden ist?
Dazu gibst Du den Spaltenindex mit, bzw. bei meiner Lösung WVERWEIS den Zeilenindex (für die gewählte Gewichtsspalte)...


Eben. Und genau deswegen scheitert das an der 2spaltigen PLZ-Matrix. Damit SVERWEIS hier arbeiten kann, müssten für die PLZ die "von" und "bis" Werte in _einer_ spalte stehen - das aber widerspricht eklatant den Regeln für die Gestaltung einer Datenbank (so man denn die Usprungstabellen als Datenbank betrachten will).

Volker

Nachtrag: mir fällt gerade ein: eigentlich müsste die "von" Spalte allein reichen....
Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
Olaf19 neanderix „SVERWEIS und Suche ohne exakte Übereinstimmung“
Optionen

> Nachtrag: mir fällt gerade ein: eigentlich müsste die "von" Spalte allein reichen....

Ja, die würde insofern reichen, als der Bis-Wert ja eine Zeile tiefer steht, wenn auch um eins erhöht. Es bleibt aber die Frage, ob OpenOffice auch in der Lage ist, nach nicht exakten Werten zu suchen. Der letzte Parameter dient jedenfalls nur der Sortierung der Werte, das scheint also eine andere Baustelle zu sein. Aber das schaue ich mir noch mal in Ruhe an.

CU
Olaf

P.S. @Borl, danke für die Mail!

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
neanderix Olaf19 „SVERWEIS und Suche ohne exakte Übereinstimmung“
Optionen

Nein, genau dieser Parameter ist der, den du suchst. Auszug aus der Hilfe:

"... Sortierte Spalten lassen sich wesentlich schneller durchsuchen, und sofern der Suchwert zwischen dem höchsten und dem niedrigsten Wert der sortierten Liste liegt, erhalten Sie mit der Funktion immer einen Wert, selbst dann, wenn der genaue Suchwert nicht gefunden werden kann. In unsortierten Listen werden nur genaue Übereinstimmungen mit dem Suchwert gefunden."

Sortiere die Spalte "PLZ-von", setze für diesen Parameter "wahr" ein und du hast exakt das, was du möchtest.

Volker

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
Olaf19 neanderix „SVERWEIS und Suche ohne exakte Übereinstimmung“
Optionen

Dann geht es doch so, wie ihr vorgeschlagen habt. Dann werde ich mir Borlanders Tabelle daraufhin nochmal zu Gemüte führen.

Dann bleibt nur noch, wie man diese Verweise hinbekommt, wenn es nicht eine "Ziel-Spalte" gibt, sondern mehrere davon. Aber in die Sache bekommen wir auch noch Licht.

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
Borlander Olaf19 „Verdammt... das hatte ich die ganze Zeit überlesen ;-)“
Optionen
Dann bleibt nur noch, wie man diese Verweise hinbekommt, wenn es nicht eine "Ziel-Spalte" gibt, sondern mehrere davon. Aber in die Sache bekommen wir auch noch Licht.
Was genau meinst Du mit der "Ziel-Spalte"?

Btw.: Beim Gewicht solltest Du ggf. noch eine Spalte anfügen, um eine Gewichtsüberschreibung ab zu fangen...


Gruß
bor
bei Antwort benachrichtigen
Olaf19 Borlander „ Was genau meinst Du mit der Ziel-Spalte ? Btw.: Beim Gewicht solltest Du ggf....“
Optionen

Damit meine ich, dass es in der Gewichtstabelle insgesamt gleich 9 Spalten gibt, nämlich für jede Zone eine eigene. Welche die richtige ist, hängt von der zuvor ermittelten Zone ab. Das ist bei der ersten Tabelle einfacher, denn da gibt es zu jedem PLZ-Bereich nur 1 Ergebnis. Aber da muss ich nochmal drüber schlafen ;-) Morgen Abend - ich meine natürlich heute abend - mehr zu dem Thema!

THX
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
Borlander Olaf19 „Damit meine ich, dass es in der Gewichtstabelle insgesamt gleich 9 Spalten gibt,...“
Optionen
in der Gewichtstabelle insgesamt gleich 9 Spalten gibt, nämlich für jede Zone eine eigene.
Ah so, dazu addierst Du dann einfach die ermittelte Zone zum ("Spaltenindex von Zone1" -1) dazu ;-)
Also so wie ich das mit dem Zeilenindex in der oben geposteten Formel gemacht hatte...

Gruß
bor
bei Antwort benachrichtigen