Arbeiten mit dem Vorschaumodus für Formelwerte in Ihren benutzerdefinierten Funktionen

Der Vorschaumodus für Formelwerte unterstützt Benutzer beim Auswerten einer Formel, während sie sie bearbeiten. Wenn ein Benutzer einen Teil einer Formel auswählt, berechnet Und zeigt Excel den ausgewählten Wert an. Die folgende Abbildung zeigt z. B. den Vorschauwert für 7 den ausgewählten Ausdruck A1+A2.

Screenshot: Excel-Formel-Editor mit ausgewählter Option

Standardmäßig führt Excel während der Formelwertvorschau eine benutzerdefinierte Funktion aus. Dieses Verhalten kann probleme verursachen, je nachdem, was Ihre benutzerdefinierte Funktion tut. Verwenden Sie die schreibgeschützte invocation.isInValuePreview Eigenschaft, um eine Vorschauberechnung zu erkennen und einen Modellwert zurückzugeben, wenn die vollständige Berechnung:

  • Rufen Sie eine getaktete API auf.
  • Zugreifen auf eine begrenzte Ressource, z. B. eine Datenbank.
  • Es dauert zu lange, um eine nützliche Vorschau bereitzustellen.

Die folgende getHousePrice benutzerdefinierte Funktion gibt während der Vorschau einen Modellpreis zurück. Für eine Standardberechnung ruft er den getakteten Dienst auf und gibt den tatsächlichen Preis zurück.

/**
 * Get the listing price for a house on the market for the given address.
 * @customfunction
 * @param address The address of the house.
 * @param invocation Custom function handler.
 * @returns The price of the house at the address.
 */
export function getHousePrice(address: string, invocation: CustomFunctions.Invocation): number {
  // Check if this call is for formula value preview mode.
  if (invocation.isInValuePreview) {
    // Avoid long-running expensive service calls.
    // Return a usable but fake number.
    return 450000;
  } else {
    // Make the actual service calls in this block.
    const price = callHouseServiceAPI(address);
    return price;
  }
}

Siehe auch