Свойство поля formula
можно использовать для добавления вычисляемых полей в схему соединителя.
Полный список функций, которые поддерживаются в формулах, можно найти в списке функций . Кроме того, имеется дополнительная документация для:
- СЛУЧАЙ
- БРОСАТЬ
- НА СЕГОДНЯШНИЙ ДЕНЬ
- ГИПЕРССЫЛКА
- ИЗОБРАЖЕНИЕ
- REGEXP_EXTRACT
- РЕГЭКСП_МАТЧ
- REGEXP_REPLACE
При ссылке на ID
другого поля в формуле добавляйте к нему префикс $
. Например, если ID
вашего поля — t_celsius
, в формуле его следует называть $t_celsius
.
Type
вычисляемых полей
Type
поддерживается для вычисляемых полей, но выходные данные формулы должны соответствовать ожидаемому формату для этого Type
.
Например, для формулы:
"HYPERLINK($url, $description)"
Type
должен быть HYPERLINK
.
aggregation
для вычисляемых полей
Если ваша формула включает агрегирование, для aggregation
должно быть установлено значение AUTO
. Проверьте столбец type
в списке функций , чтобы узнать, возвращает ли функция агрегирование. Если ваша формула не включает агрегацию, установите для нее значение NONE
.
Формула | aggregation |
---|---|
"SUM($cost) / SUM($units)" | AUTO |
"$cost + $units" | NONE |
Примеры вычисляемых полей в схеме
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() };
}