Abgestuften Preisrabatt berechnen

Programmierniveau: Anfänger
Dauer: 10 Minuten
Projekttyp: Benutzerdefinierte Funktion

Zielsetzungen

  • Machen Sie sich mit der Lösung vertraut.
  • Informieren Sie sich über die Funktionsweise der Apps Script-Dienste im Lösung.
  • Richten Sie das Skript ein.
  • Führen Sie das Skript aus.

Informationen zu dieser Lösung

Wenn Sie Ihren Kunden ein gestaffeltes Preissystem anbieten, vereinfacht die Berechnung der Rabattbeträge für Ihre Preise.

Sie könnten jedoch die integrierte Funktion SUMPRODUCT verwenden, um Berechnung mit SUMPRODUCT ist komplexer und weniger flexibel. benutzerdefinierte Funktion der Lösung.

Screenshot des Beispiels für die Preisstaffelung

Funktionsweise

Bei einem gestaffelten Preismodell sinken die Selbstkosten basierend auf der gekauften Menge.

Beispiel: Sie haben zwei Stufen, eine von 0 $bis 500 $ und und für einen Wert zwischen 501 $und 1.000 $ mit einem Rabatt von 20 %. Wenn der Gesamtpreis, für den Sie einen Rabatt berechnen müssen, 700 € beträgt, wird das Skript multipliziert die ersten 500 Euro um 10% und die restlichen 200 Euro um 20%, sodass Sie einen Gesamtrabatt von 90 $.

Für einen bestimmten Gesamtpreis durchläuft das Skript die angegebenen Stufen im Tabelle mit den Preisstufen. Für jeden Teil des Gesamtpreises, der innerhalb einer Stufe wird dieser Anteil mit dem zugeordneten Prozentsatz der Stufe multipliziert Wert. Das Ergebnis ist die Summe der Berechnung für jede Stufe.

Apps Script-Dienste

Diese Lösung verwendet den folgenden Dienst:

Vorbereitung

Damit Sie dieses Beispiel verwenden können, müssen folgende Voraussetzungen erfüllt sein:

  • Ein Google-Konto (Google Workspace-Konten können Genehmigung des Administrators erforderlich.
  • Ein Webbrowser mit Zugriff auf das Internet.

Skript einrichten

Klicken Sie auf die Schaltfläche unten, um eine Kopie der benutzerdefinierten Funktion „Staffelpreis“ zu erstellen. Tabelle. Das Apps Script-Projekt für diese Lösung an die Tabellenkalkulation angehängt.
Kopie erstellen

Skript ausführen

  1. In der kopierten Tabelle enthält die Tabelle in Zeile 16 einen Beispielpreis Berechnung für ein SaaS-Produkt (Software as a Service) durchführen.
  2. Um den Rabattbetrag zu berechnen, geben Sie in Zelle C20 Folgendes ein: =tierPrice(C19,$B$3:$D$6). Der endgültige Preis wird in Zelle C21 aktualisiert. Wenn Sie an einem Ort mit Dezimalkommastellen befindet, müssen Sie Stattdessen =tierPrice(C19;$B$3:$D$6).

Code ansehen

Wenn Sie den Apps Script-Code für diese Lösung überprüfen möchten, klicken Sie auf Quellcode ansehen unten:

Quellcode ansehen

Code.gs

solutions/custom-functions/tier-pricing/Code.js
// To learn how to use this script, refer to the documentation:
// https://developers.google.com/apps-script/samples/custom-functions/tier-pricing

/*
Copyright 2022 Google LLC

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

/**
 * Calculates the tiered pricing discount.  
 *  
 * You must provide a value to calculate its discount. The value can be a string or a reference
 * to a cell that contains a string.
 * You must provide a data table range, for example, $B$4:$D$7, that includes the 
 * tier start, end, and percent columns. If your table has headers, don't include
 * the headers in the range.
 * 
 * @param {string} value The value to calculate the discount for, which can be a string or a 
 * reference to a cell that contains a string.
 * @param {string} table The tier table data range using A1 notation.
 * @return number The total discount amount for the value.
 * @customfunction
 *  
 */
function tierPrice(value, table) {
  let total = 0;
  // Creates an array for each row of the table and loops through each array.
  for (let [start, end, percent] of table) {
  // Checks if the value is less than the starting value of the tier. If it is less, the loop stops.
    if (value < start) {
      break;
    }
  // Calculates the portion of the value to be multiplied by the tier's percent value.
    let amount = Math.min(value, end) - start;
  // Multiplies the amount by the tier's percent value and adds the product to the total.
    total += amount * percent;
  }
  return total;
}

Änderungen

Sie können die benutzerdefinierte Funktion beliebig bearbeiten. Darunter ist eine optionale Ergänzung zur manuellen Aktualisierung der Ergebnisse benutzerdefinierter Funktionen.

Im Cache gespeicherte Ergebnisse aktualisieren

Im Gegensatz zu integrierten Funktionen speichert Google benutzerdefinierte Funktionen die Leistung. Wenn Sie also in Ihren benutzerdefinierten Einstellungen wie z. B. ein Wert, der gerade berechnet wird, Erzwingen einer Aktualisierung. Um das Funktionsergebnis manuell zu aktualisieren, gehen Sie so vor: Schritte:

  1. Klicken Sie auf Einfügen, um einer leeren Zelle ein Kästchen hinzuzufügen. &gt; Kästchen.
  2. Fügen Sie die Zelle mit dem Kästchen als zusätzlichen Parameter der benutzerdefinierten . Wenn Sie beispielsweise in Zelle D20 ein Kästchen einfügen, aktualisieren Sie tierPrice() in Zelle C20 =tierPrice(C19,$B$3:$D$6,D20).
  3. Klicken Sie das Kästchen an oder entfernen Sie das Häkchen, um die Ergebnisse der benutzerdefinierten Funktion zu aktualisieren.

Beitragende

Dieses Beispiel wird von Google mit Unterstützung von Google-Entwicklerexperten verwaltet.

Nächste Schritte