La propriété de champ formula permet d'ajouter des champs calculés à votre
schéma du connecteur.
La liste complète des fonctions prises en charge dans les formules est disponible à l’adresse Liste des fonctions. Vous trouverez également d'autres documents sur les sujets suivants:
Lorsque vous faites référence au ID d'un autre champ dans une formule, ajoutez le préfixe $. Pour
Par exemple, si votre champ ID est t_celsius, il doit être désigné comme suit :
$t_celsius dans la formule.
Type pour les champs calculés
La fonction Type est compatible avec les champs calculés, mais le résultat de la formule doit
au format attendu pour ce Type.
Par exemple, pour la formule:
"HYPERLINK($url, $description)"
L'état Type doit être défini sur HYPERLINK.
aggregation pour les champs calculés
Si votre formule implique une agrégation, aggregation doit être défini sur
AUTO Consultez la colonne type dans la liste des fonctions pour voir si une fonction
renvoie une agrégation. Si votre formule n'implique pas d'agrégation, définissez-la
à NONE.
| Formule | aggregation |
|---|---|
"SUM($cost) / SUM($units)" |
AUTO |
"$cost + $units" |
NONE |
Exemples de champs calculés dans un schéma
function getSchema(request) {
var cc = DataStudioApp.createCommunityConnector();
var fields = cc.getFields();
var types = cc.FieldType;
var aggregations = cc.AggregationType;
fields.newDimension()
.setId('date')
.setName('Date')
.setDescription('Date of measurement')
.setType(types.YEAR_MONTH_DAY);
fields.newMetric()
.setId('t_celsius')
.setName('Temperature (Celsius)')
.setDescription('Temperature in Celsius')
.setType(types.NUMBER)
.setAggregation(aggregations.NONE);
fields.newMetric()
.setId('t_fahrenheit')
.setName('Temperature (Fahrenheit)')
.setDescription('Temperature in Fahrenheit')
.setFormula('$t_celsius / 5 * 9 + 32')
.setType(types.NUMBER)
.setAggregation(aggregations.NONE);
fields.newMetric()
.setId('average_temperature (Celsius)')
.setName('Average Temperature (Celsius)')
.setDescription('Temperature in Fahrenheit')
.setFormula('AVG($t_celsius)')
.setType(types.NUMBER)
.setAggregation(aggregations.AUTO);
fields.newMetric()
.setId('average_temperature (Celsius)')
.setName('Average Temperature (Celsius)')
.setDescription('Temperature in Fahrenheit')
.setFormula('AVG($t_celsius / 5 * 9 + 32)')
.setType(types.NUMBER)
.setAggregation(aggregations.AUTO);
fields.newDimension()
.setId('feels_like')
.setName('Feels Like')
.setDescription('What it feels like outside.')
.setFormula('CASE WHEN $t_celsius < 0 THEN "Freezing" WHEN $t_celsius > 40 THEN "Too warm" ELSE "Not bad" END')
.setType(types.TEXT);
return { 'schema': fields.build() };
}