表でいくつかのドリルダウンを使用することは非常に頻繁に発生し、様々なレベルでインジケータの平均を計算したい場合があります。

このチュートリアルに進む前に、memberValue機能とcrossValue機能を十分参照することをお勧めします。

次の表では、2つのドリルダウンレベル(従業員名製品)を確認できます。Avg. Ratingは、その製品に対するその従業員の平均評価を計算することです。

ただし、Avg.Benchmark列に示されているように、製品の従業員の平均評価を、ベンチマークと同じ製品の従業員全体の評価と比較することもできます。これは条件付き書式として追加できるため、その製品の従業員の平均レートが、同製品の従業員全体のレートよりも高い場合、緑色でマークし、上向き矢印で表示できます。

これを計算する方法は次の通りです。

if(!equals(substringBefore(memberValue(), ' ') ,'Product')) { 
  return ''; 
} else { 
  filter("L_PRODUCT in ('" + memberValue() + "')") {crossValue('CUBE_DAILY_CALLS.DAILY_CALLS','M_RATING@AVG')}; 
}

このチュートリアルに進む前に、crossValue数式を十分参照することをお勧めします。crossValueは、コンテキストビューで適用されるドリルダウンを取得しません。

以下の表では、製品がドリルダウンの最初のレベルとして配置され、従業員名が2番目のレベルになります。 Avg. Benchmarkは、依然として製品の従業員全体の平均です。ドリルダウンの順序を変更すると、Avg. Benchmarkの計算が少し異なります。

コードは以下の通りです:

double benchmark = 0; 
if(equals(substringBefore(memberValue(), ' '), 'Product') 
   || isBlank(memberValue())) { 
  benchmark = M_RATING@AVG; 
}else { 
  benchmark = prev('M_RATING@AVG',1); 
} 

return benchmark

次に