Auf der folgenden Seite wird die Syntax beschrieben, die Sie zum Erstellen benutzerdefinierter Formeln in Ihren Berichtstabellen verwenden können. Den Abschnitt für benutzerdefinierte Formeln finden Sie hier:

| Formel | Beschreibung | Beispiel |
CellValue(["[ROW-NAME]"],"[COLUMN-NAME]").MissingsCount | Gibt die Anzahl der Interviews mit fehlenden Werten für eine bestimmte Zelle zurück. Wenn RowName nicht angegeben ist, wird die aktuelle Zeile verwendet. | CellValue(null,"Column1").MissingsCount CellValue("Row1","Column1").MissingsCount |
CellValue(["[ROW-NAME]"],"[COLUMN-NAME]").NaCount | Gibt die Anzahl der Interviews mit N/A für eine bestimmte Zelle zurück. Wenn RowName nicht angegeben ist, wird die aktuelle Zeile verwendet. | CellValue(null,"Column1").NaCount CellValue("Row1","Column1").NaCount |
CellValue(["[ROW-NAME]"],"[COLUMN-NAME]").Value | Gibt den berechneten Wert für eine bestimmte Zelle zurück. Wenn RowName nicht angegeben ist, wird die aktuelle Zeile verwendet. | CellValue(null,"Column1").Value CellValue("Row1","Column1").Value |
CellValue(["[ROW-NAME]"],"[COLUMN-NAME]").ResponseCount | Gibt die Anzahl der Interviews für eine bestimmte Zelle zurück. Wenn RowName nicht angegeben ist, wird die aktuelle Zeile verwendet. | CellValue(null,"Column1").ResponseCount CellValue("Row1","Column1").ResponseCount |
Benutzerdefinierte Formel für Segmente
| Formel | Beschreibung |
RowResult.MissingsCount | Gibt die Anzahl der Interviews mit fehlenden Werten für das aktuelle Segment zurück. |
RowResult.NaCount | Gibt die Anzahl der Interviews mit N/A für das aktuelle Segment zurück. |
RowResult.ResponseCount | Gibt die Anzahl der Interviews für das aktuelle Segment zurück. |
SegmentValue(name) | Gibt den Segmentwert der aktuellen Spalte für den angegebenen Segmentnamen zurück. |
Benutzerdefinierte Formel für die Tabelle
| Formel | Beschreibung |
DataSourceResult.MissingsCount | Gibt die Anzahl der Interviews mit fehlenden Werten für die gesamte Tabelle zurück, unabhängig von einer Variablen. |
DataSourceResult.NaCount | Gibt die Anzahl der Interviews mit N/A für die gesamte Tabelle zurück, unabhängig von einer Variablen. |
DataSourceResult.ResponseCount | Gibt die Anzahl der Interviews zurück |
CurrentRowName | Gibt den RowName zurück, der aktuell berechnet wird |
CurrentColumnName | Gibt den ColumnName zurück, der aktuell berechnet wird |
Mehrzeilige benutzerdefinierte Formel
Wenn Sie ein mehrzeiliges Skript erstellen möchten, verwenden Sie am Anfang den Befehl return und am Ende ;:
return (CellValue("Row1","Ginger_1_Average_f2bf-21db").Value + CellValue("Row2","Ginger_1_Average_f2bf-21db").Value + CellValue("Row3","Ginger_1_Average_f2bf-21db").Value + CellValue("Row4","Ginger_1_Average_f2bf-21db").Value + CellValue("Row5","Ginger_1_Average_f2bf-21db").Value) / 5;Werte wechseln / Werte fest codieren
Dies ist hilfreich, wenn bestimmte Werte in bestimmte Zellen geschrieben werden sollen. Werte können entweder fest codiert oder aus anderen Zellen referenziert werden.
switch(CurrentRowName)
{
case "Row2": return 2314 * 12;
case "Row3": return 2313 * 12;
case "Row4": return 2294 * 12;
}
return 0;Dieselbe Syntax gilt für Spalten. Verwenden Sie stattdessen CurrentColumnName und erstellen Sie Fälle mit den unterschiedlichen Zeilennamen.
If-Bedingung in einer benutzerdefinierten Formel
Numerischer Vergleich
Die Formel im folgenden Beispiel prüft, ob der Wert in einer anderen Spalte kleiner als 0,2 ist. Ist dies der Fall, wird der Wert aus dieser Spalte angezeigt. Andernfalls wird null (leer) angezeigt. Damit können beispielsweise Einzelergebnisse anonymisiert werden, wenn die Anzahl unter X liegt, oder Ergebnisse allgemein auf die gewünschte Weise von einer Spalte in eine andere übertragen werden. Die zurückgegebenen Werte werden außerdem in Diagrammreihen verwendet, die auf dieser Spalte basieren.
if ((double)CellValue(null,"Percent_6942-44f3").Value > 0.2)
{
return CellValue(null,"Percent_6942-44f3").Value;
}
else
{
return null;
}Das folgende Beispiel stammt aus einer Tabelle, in der negative Differenzen durch den Wert 0 ersetzt werden sollen.
var result = CellValue("Row4",null).Value - CellValue("Row6",null).Value;
if (result < 0) {result=0;}
return result;Das Präfix (double) vor der Funktion CellValue() muss verwendet werden, wenn der Zellenwert mit einer reellen Zahl verglichen wird. Es ist nicht erforderlich, wenn CellValue() mit einer anderen CellValue()-Funktion oder einer Ganzzahl verglichen wird.
Kombinierte If-Bedingung
Die Formel im folgenden Beispiel prüft anhand zweier unterschiedlicher Eingaben, ob eine Aktion ausgeführt werden muss. Dabei wird zunächst geprüft, ob die erste Bedingung erfüllt ist. Ist dies nicht der Fall, wird geprüft, ob die zweite Bedingung erfüllt ist.
var result = 0;
if (CellValue(null,"Column10").Value < 0)
{
result = 1;
}
else if (CellValue(null,"Column8").Value > 4.5m)
{
result = 2;
} ;
return result;Textvergleich
Wenn Sie Texte (Strings) vergleichen möchten, müssen Sie eine explizite Typkonvertierung durchführen, da der Rückgabewert der Formel standardmäßig immer eine Zahl ist.
if (CellValue<string>(null,"[COLUMN-IDENTIFIER]").Value?.Equals("[STRING-VALUE]", StringComparison.OrdinalIgnoreCase)==true)
{
return 1;
}
else
{
return 2;
}Beachten Sie die explizite Typkonvertierung <string> nach dem Ausdruck „CellValue“
If/Then in Kombination mit CellTemplates
Im Context-Portal sollen Spalten unterschiedliche Aktionen anzeigen. Hierzu werden If-Then-Bedingungen, die auf Werten in anderen Spalten basieren, in Kombination mit CellTemplates verwendet.
Wenn CellTemplates verwendet werden, gibt der Rückgabewert 1 das erste CellTemplate und der Rückgabewert 2 das zweite CellTemplate zurück.
Werte runden
Im folgenden Skript wird der Wert auf eine Zahl ohne Dezimalstellen gerundet
Math.Round(((double)CellValue("Row2","Column1").Value/(double)CellValue("Row1","Column1").Value*100),0)Der vollständige Funktionsumfang des Skripteditors wird in der .NET-Sprachreferenz beschrieben: