Versandkosten gemischt nach Gewicht ODER Volumen berechnen

Hallo Mitleidende!

Ich möchte die Versandkosten, artikelabhängig und anteilig, nach Gewicht oder nach Volumengewicht berechnen, wobei ausschlaggebend sein soll: der höhere Wert!

Also wenn Position Gewicht größer Volumengewicht, dann WEIGHT addieren, ansonsten HEIGHT x LENGTH x WIDTH / 5000 addieren. Multipliziert mit der Stückzahl natürlich :wink:

Nun hab ich festestellt, dass ich mit meiner Rechnung nicht weiterkomme, wenn in einem der Felder LÄNGE, BREITE, HÖHE kein Wert eingetragen ist. Deswegen bin ich dann übergegangen zur Verwendung von IFNULL.

Mein Ansatz mit schlichten Grenzen 10, 50 und 100 Kilo:

IF(SUM(IF(d.weight>(IFNULL(d.width,0)*IFNULL(d.length,0)*IFNULL(d.height,0)/5000),d.weight*b.quantity,d.width*d.length*d.height/5000*b.quantity))>100,100,
IF(SUM(IF(d.weight>(IFNULL(d.width,0)*IFNULL(d.length,0)*IFNULL(d.height,0)/5000),d.weight*b.quantity,d.width*d.length*d.height/5000*b.quantity))>50,50,
IF(SUM(IF(d.weight>(IFNULL(d.width,0)*IFNULL(d.length,0)*IFNULL(d.height,0)/5000),d.weight*b.quantity,d.width*d.length*d.height/5000*b.quantity))>10,10,
5)))

Ich bin jetzt leider nicht fündig geworden, wenn es um die Betrachtung der einzelnen Positionen geht, im Gegensatz zu einem Gesamt-Gewicht und einem Gesamt-Volumen(gewicht).

Soweit ich es getestet habe scheint es fehlerfrei zu funktionieren.

Hat irgendwer Erfahrung damit oder kennt einen anderen oder einfacheren Weg hier ans Ziel zu kommen?