予測不可能なデータから数式が作成されることを防ぐために、数式では本番リストのトップ レベル アイテムしか参照できず、個別のリスト アイテムは参照できません。これを数式参照の保護と呼びます。
本番リスト用の数式参照の保護は両方の方向に適用されます。
許可されているリスト プロパティへの式参照の例
リストの特定のアイテムではなく、本番リストのプロパティへの式参照は許可されています。
このタイプの式参照では以下を実行できます。
- 既存の本番リストへの式参照を作成する
- この式参照がすでにあるリストを本番リストとして設定する
こちらは、本番リスト上のプロパティを正しく参照する式の例です。
許可されている式参照を作成する方法は以下のとおりです。
- 数値形式の「City area (sq mls)」プロパティがある「City Stats」リストを作成します。
- 「City stats」リストを列のディメンションとして使用する「City statistics」モジュールを作成します。 モジュールには「City land area (sq mi)」数値ライン アイテムがあります。このライン アイテムでは、各リスト アイテムの「City area (sq mi)」リストのプロパティ値を取得する式を使用しています (以下の「City land area (sq mi)」の式を参照)。
- 「City stats」リストを本番リストとして設定します。ブロックされずに本番リストが作成されます。
「City stats」リスト、「City statistics」モジュール、「City statistics」モジュールの式の例を以下に示します。
「City stats」リスト
以下の表は、グリッド ビューで数値形式の「City area (sq mls)」プロパティを含む「City stats」リストの例を示したものです。
親 | コード | City Area (sq mi) | |
New York | 18 | ||
Boston | 15 | ||
Chicago | 12 | ||
Washington | 8 |
「City Statistics」モジュール:
New York | Boston | Chicago | Washington | |
City Population (m) | 8.6 | 3.4 | 2.7 | 5.3 |
City Land Area (sq mls) | 18 | 15 | 12 | 8 |
「City Land Area (sq mi)」の式:
City Stats List.'City Area (sq mls)'
ブロックされた本番リストへの式参照の例
リストを本番リストとして設定すると、そのリストのアイテムを参照する数式を作成しようとしても必ずブロックされます。
以下の例は、「Companies」リストが作成され、本番リストとして設定されたときに、この式エラーがどのように発生するかを示したものです。
本番リストを使用してブロックされた式を作成する方法は以下のとおりです。
- 「Company grade」モジュールを作成します。
- 「Companies」リストを作成します。
- 「Companies」リストを本番リストとして設定します。
- 「Companies」リストを列のディメンションとして設定します。
- 「Company grade」ライン アイテムを「Company grade」モジュールに追加します。
- 「Company grade」ライン アイテムを一つの数字として書式設定します。
- 「Company grade」値の式を次の内容で作成します。
- ITEM 関数を埋め込む条件付き
- ITEM 関数では、「Companies」リスト内のアイテムを参照して、「Companies 1」のみが 1 の評価を受けるようにする
- 式を保存します。
式を保存しようとすると、操作を実行できず、エラー メッセージが表示されます。この式を含むモジュールを構築するには、「Companies」リストの本番リストとしての設定を解除する必要があります。
「Company grade」モジュールと「Company grade」の式の例を以下に示します。
「Company Grade」モジュール:
Company 1 | Company 2 | Company 3 | Company 4 | Company 5 | Company 6 | Company 7 | Company 8 | Total Companies | |
Company Grade | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
「Company Grade」の式:
IF ITEM(Companies) = Companies.'Company 1' THEN 1 Else 2
式で本番リストを参照する場合のブロック リストの例
本番リストとして設定しようとしているリストのいずれかのアイテムがすでに式で参照されている場合は、リストを本番リストとして設定できません。以下の例は、この式エラーがどのように発生するかを示しています。
本番リストとして設定しようとしているリストのいずれかのアイテムがすでに式で参照されている場合は、リストを本番リストとして設定できません。
ブロック リストを作成する方法は以下のとおりです。
- 「Company status」モジュールを作成します。
- 「Companies」リストを作成します。
- 「Companies」リストを列のディメンションとして設定します。
- 「Company class status」ライン アイテムを作成します。
- 「Company class」リストで「Company class status」ライン アイテムを書式設定します。
- 「Company class status」の式を次の内容で作成します。
- 「Companies」アイテムを参照する ITEM 関数を埋め込む条件付き
- ITEM 関数では、「Companies」リスト内のアイテムを参照して、「Companies 1」のみが「Class A」ステータスになるようにする
- 「Companies」リストを本番リストとして設定します。
「Companies」リストを本番リストとして設定しようとしてもブロックされます。リストを本番リストとして設定する前に、リスト アイテムへのすべての式参照を削除する必要があります。
「Company class status」の式と「Company status」モジュールの例を以下に示します。
「Company Class Status」の式:
IF ITEM(Companies) = Companies.'Company 1' THEN Company Class.Class A Else Company Class.Class B
「Company Status」モジュール:
Company 1 | Company 2 | Company 3 | Company 4 | Company 5 | Company 6 | Company 7 | Company 8 | Total Companies | |
Company Class Status | Class A | Class B | Class B | Class B | Class B | Class B | Class B | Class B | |
Company Grade | 10 | 7 | 4 | 6 | 2 | 6 | 8 | 5 | 6 |