Свойство поля 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() };
}