استخدام الحقول المحسوبة في المخطط

يمكن استخدام سمة الحقل formula لإضافة الحقول المحسوبة إلى موصل جديد.

يمكن العثور على القائمة الكاملة للدوال المتاحة في المعادلات على قائمة الدوال. هناك أيضًا وثائق أخرى لما يلي:

عند الإشارة إلى 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() };
}