OFFSET を使用してハイパーブロックを参照

このトピックでは OFFSET 関数について説明します。この関数は、[サンプル] アプリケーションのサンプルレポート RP006 を参照します。

OFFSET 関数は Application Studio に固有ではありませんが、ハイパーブロックを操作するときに便利です。これは、[ビュー] モードでは、ハイパーブロックが動的であるためです。[デザイン] モードでは、ハイパーブロックは静的です。つまり、ハイパーブロックは特定の範囲のセルを占有します。ただし、[ビュー] モードでは、ハイパーブロックが拡張し、内容により収縮し、特定のセル参照を無意味にします。このため、たとえば、ハイパーブロック内のセルを参照しなければならないハイパーブロック外の数式がある場合は、動的数式が必要です。

OFFSET を使用して、初期参照セルに対する相対位置を指定することにより、セルを識別します。初期参照セルからの行数と列数による距離を表す座標で位置を指定します。

次の例では、セル C13 を参照しています。

=OFFSET(F11,2,-3)

つまり、F11 が初期参照セルです。2 番目の引数 2 は参照されたセルが F11 の 2 行下であることを示します。3 番目の引数 3 は参照されたセルが F11 から左へ 3 列目であることを示します。

次の例も、セル C13 を参照しています。

=OFFSET(B21,-8,1)

つまり、B21 が初期参照セルです。2 番目の引数 8 は、参照されたセルが B21 より 8 行上にあることを示しています。3 番目の引数 1 は参照されたセルが B21 から右へ 1 列目であることを示します。

Application Studio における OFFSET の一般的な用途は、たとえば、ABC Analysis または Pareto グラフで使用するための累計値の計算です。累計値を計算するには、現在のセルの値を上のセルの値に追加します。ただし、ハイパーブロックの動的環境では、静的セル参照で、上のセルを指定できません。

レポート RP006 には、OFFSET を使用して累計値を計算する方法が示されています。

レポート RP006 には、サンプルアプリケーション Analysis キューブの Product 次元から作成されたハイパーブロックが 1 つ含まれています。

ハイパーブロックには 2 つの値セルがあります。最初の値セルでは、ROC 式が製品の各グループの値を表示します。2 番目の値セルには、OFFSET 式があります。

[ビュー] モードのとき、このセルには最初の値セルの値がそのまま入ります。これは、OFFSET 式が誤っているからです。

セル E5 の数式は次のようになります。

=OFFSET(E5,0,0)+D5

累計値を表示するように OFFSET 式を変更するには、次の手順を実行します。

  1. [デザイン] モードでセル E5 をクリックします。
  2. 数式エディターで、OFFSET 式の 2 番目の引数を 0 から -1 へ変更します。つまり、数式を =OFFSET(E5,-1,0)+D5 に変更します。ここで、-1 は「上の行」を指定します。

    ビューモードで累計値が表示され、[Cumulative] ラベルが表示されます。これは、IF ステートメント内でネストされたセル E3 の OFFSET 関数を使用しても実現できます。

    IF ステートメントは、=IF(OFFSET(E3,3,0)=OFFSET(E3,3,-1),"","Cumulative") のようになります。

    結果の先頭行の値は、常に同じになることがわかっています。ただし、累計値が表示される場合、他のすべての行の値は等しくなりません。このため、IF ステートメントは行 2 の値が等しいかテストします。

    IF ステートメントは次のように変換します。E3 の 3 行下のセルの値が E3 の 3 行下で 1 列左の値と等しい場合、何も表示されません ("")。それ以外の場合、"Cumulative" と表示されます。