Hinzufügen von Kalkulationsfeldern - Amazon QuickSight

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Hinzufügen von Kalkulationsfeldern

Erstellen Sie Kalkulationsfelder, transformieren Sie Ihre Daten, indem Sie eine oder mehrere der folgenden Optionen verwenden:

  • Operatoren

  • Funktionen

  • Aggregatfunktionen (Sie können diese nur zu einer Analyse hinzufügen)

  • Felder, die Daten enthalten

  • Andere Kalkulationsfelder

Sie können während der Datenvorbereitung oder über die Seite für die Analyse einem Dataset Kalkulationsfelder hinzufügen. Wenn Sie während der Datenvorbereitung einem Dataset ein Kalkulationsfeld hinzufügen, steht das Feld in allen Analysen zur Verfügung, die dieses Dataset nutzen. Wenn Sie einem Dataset ein Kalkulationsfeld in einer Analyse hinzufügen, ist es nur in dieser Analyse verfügbar.

Analysen unterstützen sowohl einzeilige als auch aggregierte Operationen. Operationen mit einzelnen Zeilen liefern (möglicherweise) für jede Zeile ein anderes Ergebnis. Aggregierte Operationen liefern Ergebnisse, die für alle Zeilen einer Gruppe immer gleich sind. Wenn Sie beispielsweise eine einfache Zeichenfolge-Funktion ohne Bedingungen verwenden, wird jede Zeile geändert. Wenn Sie eine Aggregationsfunktion verwenden, gilt diese für alle Zeilen einer Gruppe. Wenn Sie den Gesamtumsatz der Verkäufe in den USA abfragen, gilt dieselbe Zahl für das gesamte Set. Wenn Sie Daten eines bestimmten Bundeslands abfragen, ändert sich der Gesamtumsatz der Verkäufe entsprechend der neuen Gruppierung. Es wird weiterhin ein Ergebnis für das gesamte Set geliefert.

Wenn Sie das aggregierte Kalkulationsfeld innerhalb der Analyse erstellen, können Sie die Daten weiter aufschlüsseln. Der Wert dieses aggregierten Felds wird für jede Ebene entsprechend neu berechnet. Diese Art der Aggregation ist während der Aufbereitung des Datensatzes nicht möglich.

Nehmen wir an, Sie möchten den prozentualen Gewinn für jedes Land, jede Region und jedes Bundesland berechnen. Sie können ein Kalkulationsfeld zu einer Analyse hinzufügen: (sum(salesAmount - cost)) / sum(salesAmount) Wenn der Analyst dann die Geografie aufschlüsselt, wird dieses Feld dann für jedes Land, jede Region und jedes Bundesland berechnet.

Hinzufügen von Kalkulationsfeldern zu einer Analyse

Wenn Sie einer Analyse einen Datensatz hinzufügen, wird jedes Kalkulationsfeld, das im Datensatz vorhanden ist, der Analyse hinzugefügt. Sie können zusätzliche Kalkulationsfelder auf Analyseebene hinzufügen, um Kalkulationsfelder zu erstellen, die nur in dieser Analyse verfügbar sind.

So fügen Sie ein Kalkulationsfeld zu einer Analyse hinzu
  1. Öffnen Sie die QuickSight -Konsole.

  2. Öffnen Sie die Analyse, die Sie ändern möchten.

  3. Wählen Sie im Datenbereich oben links die Option Hinzufügen und dann + BERECHNETES FELD aus.

    1. Gehen Sie im sich öffnenden Berechnungseditor wie folgt vor:

    2. Geben Sie einen Namen für das Kalkulationsfeld ein.

    3. Geben Sie eine Formel mit Feldern aus Ihrem Datensatz, Funktionen und Operatoren ein.

  4. Wenn Sie fertig sind, wählen Sie Speichern aus.

Weitere Informationen zum Erstellen von Formeln mithilfe der verfügbaren Funktionen in QuickSight finden Sie unterBerechnete Feldfunktion und Operatorreferenz für Amazon QuickSight .

Hinzufügen von Kalkulationsfeldern zu einem Datensatz

QuickSight Amazon-Autoren können während der Datenvorbereitungsphase der Erstellung eines Datensatzes berechnete Felder generieren. Wenn Sie ein Kalkulationsfeld für einen Datensatz erstellen, wird das Feld zu einer neuen Spalte im Datensatz. Alle Analysen, die den Datensatz verwenden, erben die Kalkulationsfelder des Datensatzes.

Wenn das berechnete Feld auf Zeilenebene funktioniert und der Datensatz gespeichert istSPICE, wird das Ergebnis QuickSight berechnet und materialisiert in. SPICE Wenn das berechnete Feld auf einer Aggregationsfunktion basiert, QuickSight behält die Formel bei und führt die Berechnung aus, wenn die Analyse generiert wird. Diese Art von Kalkulationsfeld wird als unmaterialisiertes Kalkulationsfeld bezeichnet.

So bearbeiten oder fügen Sie ein Kalkulationsfeld für einen Datensatz hinzu
  1. Öffnen Sie den Datensatz, mit dem Sie arbeiten möchten. Weitere Informationen finden Sie unter Bearbeiten von Datensätzen.

  2. Führen Sie auf der Datenvorbereitungsseite einen der folgenden Schritte aus:

    • Um ein neues Feld zu erstellen, wählen Sie links Kalkulationsfeld hinzufügen aus.

    • Um ein vorhandenes Kalkulationsfeld zu bearbeiten, wählen Sie es links unter Kalkulationsfelder aus und wählen Sie dann im Kontextmenü (Rechtsklick) die Option Bearbeiten aus.

  3. Geben Sie im Berechnungseditor einen beschreibenden Namen für Titel hinzufügen ein, um dem neuen Kalkulationsfeld einen Namen zu geben. Dieser Name erscheint in der Feldliste im Datensatz und sollte daher den anderen Feldern ähneln. In diesem Beispiel nennen wir das Feld Total Sales This Year.

  4. (Optional) Fügen Sie einen Kommentar hinzu, um beispielsweise zu erläutern, was der Ausdruck bewirkt, indem Sie Text in Schrägstriche und Sternchen einschließen.

    /* Calculates sales per year for this year*/
  5. Identifizieren Sie die Metriken, Funktionen und anderen Elemente, die verwendet werden sollen. Für dieses Beispiel müssen wir Folgendes identifizieren:

    • Die zu verwendende Metrik

    • Funktionen: ifelse und datediff

    Wir möchten eine Aussage wie „Wenn der Verkauf in diesem Jahr stattfand, ist der Gesamtumsatz anzugeben, andernfalls ist 0 anzugeben.“

    Um die ifelse-Funktion hinzuzufügen, öffnen Sie die Liste Funktionen. Wählen Sie Alle, um die Liste aller Funktionen zu schließen. Jetzt sollten Sie die Funktionsgruppen Aggregat, Bedingung, Datum usw. sehen.

    Wählen Sie Bedingung und doppelklicken Sie dann auf ifelse, um es dem Arbeitsbereich hinzuzufügen.

    ifelse()
  6. Platzieren Sie den Cursor innerhalb der Klammer im Arbeitsbereich und fügen Sie drei Leerzeilen ein.

    ifelse( )
  7. Setzen Sie den Cursor auf die erste leere Zeile und suchen Sie die Funktion dateDiff. Sie ist für Funktionen unter Daten aufgeführt. Sie können es auch finden, indem Sie date für Suchfunktionen eingeben. Die dateDiff-Funktion gibt alle Funktionen zurück, die date als Teil ihres Namens haben. Sie gibt nicht alle Funktionen zurück, die unter Daten aufgeführt sind. Beispielsweise fehlt die now-Funktion in den Suchergebnissen.

    Doppelklicken Sie auf dateDiff, um sie der ersten Leerzeile der ifelse-Anweisung hinzuzufügen.

    ifelse( dateDiff() )

    Fügen Sie die Parameter hinzu, die dateDiff verwendet. Platzieren Sie den Cursor in den dateDiff-Klammern, um mit dem Hinzufügen von date1, date2, und period zu beginnen:

    1. Für date1: Der erste Parameter ist das Feld, das das Datum enthält. Suchen Sie ihn unter Felder und fügen Sie ihn dem Arbeitsbereich hinzu, indem Sie darauf doppelklicken oder seinen Namen eingeben.

    2. Fügen Sie für date2 ein Komma hinzu und wählen Sie dann truncDate() für Funktionen aus. Fügen Sie in der Klammer einen Zeitraum und ein Datum hinzu, etwa so: truncDate( "YYYY", now() )

    3. Für period: Fügen Sie nach date2 ein Komma hinzu und geben Sie YYYY ein. Dies ist der Zeitraum für das Jahr. Um eine Liste aller unterstützten Zeiträume anzuzeigen, suchen Sie in der Liste Funktionen nach dateDiff und öffnen Sie die Dokumentation, indem Sie Mehr erfahren wählen. Wenn Sie sich die Dokumentation bereits ansehen, so wie Sie es jetzt tun, finden Sie weitere Informationen unter dateDiff.

    Fügen Sie zur besseren Lesbarkeit einige Leerzeichen hinzu, wenn Sie möchten. Ihr Ausdruck sollte folgendermaßen aussehen.

    ifelse( dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) )
  8. Geben Sie den Rückgabewert an. In unserem Beispiel muss der erste Parameter in ifelse einen Wert von TRUE oder FALSE zurückgeben. Da wir das aktuelle Jahr suchen und mit diesem vergleichen, geben wir an, dass die dateDiff-Anweisung 0 zurückgeben soll. Der if-Teil des ifelse wird als wahr für Zeilen ausgewertet, bei denen es keinen Unterschied zwischen dem Jahr des Verkaufs und dem aktuellen Jahr gibt.

    dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0

    Um ein Feld für TotalSales für das letzte Jahr zu erstellen, können Sie 0 in 1 ändern.

    Eine andere Möglichkeit, das Gleiche zu tun, ist die Verwendung von addDateTime anstelle von truncDate. Dann ändern Sie für jedes vorangegangene Jahr den ersten Parameter für addDateTime, um jedes Jahr darzustellen. Dazu verwenden Sie -1 für das letzte Jahr, -2 für das Jahr davor usw. Wenn Sie addDateTime verwenden, verlassen Sie die dateDiff-Funktion = 0 für jedes Jahr.

    dateDiff( {Discharge Date}, addDateTime(-1, "YYYY", now() ) ,"YYYY" ) = 0 /* Last year */
  9. Bewegen Sie den Cursor auf die erste Leerzeile, direkt unter dateDiff. Fügen Sie ein Komma hinzu.

    Für den then-Teil der ifelse-Anweisung müssen wir den Messwert (Metrik) wählen, der den Umsatzbetrag TotalSales enthält.

    Um ein Feld auszuwählen, öffnen Sie die Liste Felder und doppelklicken Sie auf ein Feld, um es dem Bildschirm hinzuzufügen. Oder Sie können den Namen eingeben. Fügen Sie geschweifte Klammern { } um Namen hinzu, die Leerzeichen enthalten. Es ist wahrscheinlich, dass Ihre Metrik einen anderen Namen hat. Anhand des vorangestellten Nummernzeichens (#) können Sie erkennen, welches Feld eine Metrik ist.

    Ihr Ausdruck sollte jetzt wie folgt aussehen.

    ifelse( dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0 ,{TotalSales} )
  10. Fügen Sie eine else-Klausel hinzu. Die ifelse-Funktion benötigt keine, aber wir möchten sie hinzufügen. Zu Berichtszwecken möchten Sie normalerweise keine Nullwerte verwenden, da manchmal Zeilen mit Nullen weggelassen werden.

    Wir setzen den anderen Teil des Feldes auf 0. Das Ergebnis ist, dass dieses Feld für Zeilen, die Verkäufe aus früheren Jahren enthalten, 0 ist.

    Fügen Sie dazu in der leeren Zeile ein Komma und dann ein 0 hinzu. Wenn Sie den Kommentar am Anfang hinzugefügt haben, sollte Ihr fertiger ifelse-Ausdruck wie folgt aussehen.

    /* Calculates sales per year for this year*/ ifelse( dateDiff( {Date}, truncDate( "YYYY", now() ) ,"YYYY" ) = 0 ,{TotalSales} ,0 )
  11. Speichern Sie Ihre Arbeit, indem Sie oben rechts Speichern wählen.

    Wenn Ihr Ausdruck Fehler enthält, zeigt der Editor unten eine Fehlermeldung an. Suchen Sie in Ihrem Ausdruck nach einer roten, verschnörkelten Linie, und bewegen Sie dann den Mauszeiger über diese Linie, um die Fehlermeldung zu sehen. Zu den häufigsten Fehlern gehören fehlende Satzzeichen, fehlende Parameter, Rechtschreibfehler und ungültige Datentypen.

    Um Änderungen zu vermeiden, wählen Sie Abbrechen.

So fügen Sie einem Kalkulationsfeld einen Parameterwert hinzu
  1. Sie können auf Parameter in Kalkulationsfeldern verweisen. Indem Sie den Parameter zu Ihrem Ausdruck hinzufügen, fügen Sie den aktuellen Wert dieses Parameters hinzu.

  2. Um einen Parameter hinzuzufügen, öffnen Sie die Liste Parameter und wählen Sie den Parameter aus, dessen Wert Sie einbeziehen möchten.

  3. (Optional) Um dem Ausdruck manuell einen Parameter hinzuzufügen, geben Sie den Namen des Parameters ein. Dann schließen Sie ihn in geschweifte Klammern {} ein und stellen ihm ein $ voran, zum Beispiel ${parameterName}.

Sie können den Datentyp jedes Felds in Ihrem Datensatz ändern, einschließlich der Typen der Kalkulationsfelder. Sie können nur Datentypen auswählen, die mit den Daten im Feld übereinstimmen.

So ändern Sie den Datentyp eines Kalkulationsfelds
  • Wählen Sie für Kalkulationsfelder (links) das Feld aus, das Sie ändern möchten, und wählen Sie dann im Kontextmenü (Rechtsklick) die Option Datentyp ändern aus.

Im Gegensatz zu den anderen Feldern im Datensatz können Kalkulationsfelder nicht deaktiviert werden. Löschen Sie sie stattdessen.

So löschen Sie ein Kalkulationsfeld
  • Wählen Sie für Kalkulationsfelder (links) das Feld aus, das Sie ändern möchten, und wählen Sie dann im Kontextmenü (Rechtsklick) die Option Löschen aus.

Behandeln von Dezimalwerten in Kalkulationsfeldern

Wenn Ihr Datensatz den Direktabfragemodus verwendet, wird die Berechnung des Dezimaldatentyps durch das Verhalten der Quell-Engine bestimmt, aus der der Datensatz stammt. QuickSight Wendet in bestimmten Fällen spezielle Verfahren an, um den Datentyp der Ausgabeberechnung zu bestimmen.

Wenn Ihr Datensatz den SPICE-Abfragemodus verwendet und ein Kalkulationsfeld materialisiert wird, hängt der Datentyp des Ergebnisses von den spezifischen Funktionsoperatoren und dem Datentyp der Eingabe ab. Die folgenden Tabellen zeigen das erwartete Verhalten für einige numerische Kalkulationsfelder.

Unäre Operatoren

Die folgende Tabelle zeigt, welcher Datentyp basierend auf dem von Ihnen verwendeten Operator und dem Datentyp des von Ihnen eingegebenen Werts ausgegeben wird. Wenn Sie beispielsweise eine Ganzzahl in eine abs-Berechnung eingeben, ist der Datentyp des Ausgabewerts eine ganze Zahl.

Operator Eingabetyp Output type
abs Decimal-fixed Decimal-fixed
Int Int
Decimal-float Decimal-float
ceil Decimal-fixed Int
Int Int
Decimal-float Int
exp Decimal-fixed Decimal-float
Int Decimal-float
Decimal-float Decimal-float
floor Decimal-fixed Int
Int Int
Decimal-float Int
ln Decimal-fixed Decimal-float
Int Decimal-float
Decimal-float Decimal-float
log Decimal-fixed Decimal-float
Int Decimal-float
Decimal-float Decimal-float
round Decimal-fixed Decimal-fixed
Int Decimal-fixed
Decimal-float Decimal-fixed
sqrt Decimal-fixed Decimal-float
Int Decimal-float
Decimal-float Decimal-float

Binäre Operatoren

Die folgenden Tabellen zeigen, welcher Datentyp auf der Grundlage der Datentypen der beiden eingegebenen Werte ausgegeben wird. Wenn Sie z. B. für einen arithmetischen Operator zwei Ganzzahl-Datentypen angeben, wird das Ergebnis der Berechnung als Ganzzahl ausgegeben.

Für grundlegende Operatoren (+, -, *):

Ganzzahl Decimal-fixed Decimal-float

Ganzzahl

Ganzzahl

Decimal-fixed

Decimal-float

Decimal-fixed

Decimal-fixed

Decimal-fixed

Decimal-float

Decimal-float

Decimal-float

Decimal-float

Decimal-float

Für Abteilungsoperatoren (/):

Ganzzahl Decimal-fixed Decimal-float

Ganzzahl

Decimal-float

Decimal-float

Decimal-float

Decimal-fixed

Decimal-float

Decimal-fixed

Decimal-float

Decimal-float

Decimal-float

Decimal-float

Decimal-float

Für Exponential- und Mod-Operatoren (^, %):

Ganzzahl Decimal-fixed Decimal-float

Ganzzahl

Decimal-float

Decimal-float

Decimal-float

Decimal-fixed

Decimal-float

Decimal-float

Decimal-float

Decimal-float

Decimal-float

Decimal-float

Decimal-float