リストと組み合わせて ITEM 関数を使用すると、各セルに適用されるリスト アイテムが返されます。時間と組み合わせて使用すると、各セルに適用される時間軸が返されます。
たとえば、ITEM 関数を使用して、モジュールのセルに適用されるリストに応じて出力が変化する条件式を作成できます。
構文
ITEM(List_or_Time)
引数
引数 | データ型 | 説明 |
List_or_Time | リスト又は時間ディメンション | 返すアイテムの取得元となるリストの名前、又は時間への参照 |
ITEM 関数は指定した List 又は Time 引数に応じて、データ型がリストか時間軸の結果を返します。
計算エンジンの機能の違い
Polaris では、式集計方法を指定した状態で、ライン アイテムの式で ITEM を使用することはできません。Classic エンジンでは使用できます。
Polaris では、Time 引数を一つ指定した状態で ITEM 関数を使用することはできません。Classic エンジンでは使用できます。
構文の例
ITEM(Products)
ここでは、モジュールのディメンションである「Products」リストの適用可能な値が ITEM 関数によって返されています。
追加情報
ITEM 関数ではカンマで区切って引数を二つ指定できます。これを行った場合、FINDITEM 関数を使用するように、送信時に式が自動的に更新されます。
例:
- 式「
ITEM(Hardware, "Bolts")
」が更新されて「FINDITEM(Hardware, "Bolts")
」になります。 - 式「
ITEM(Time, "Jan 22")
」が更新されて「FINDITEM(Time, "Jan 22")
」になります。
制約
- [Formula] での集計方法では ITEM 関数を使用できません。これは、[Applies To] で親リストが選択されず、子リストのみが選択されるためです。
- ITEM 関数を使用するリストは、モジュールの [Applies To] で選択したディメンションにする必要があります。
例
シンプルな例
この例では、列に時間、行に「Products」リストがあります。ページ ディメンションには二つのライン アイテムがあります。二つのライン アイテムにはそれぞれ、式「ITEM(Time)
」と「ITEM(Products)
」があります。
以下の表には式「ITEM(Time)
」の結果が表示されています。
Jan 22 | Feb 22 | Mar 22 | |
Product 1 | Jan 22 | Feb 22 | Mar 22 |
Product 2 | Jan 22 | Feb 22 | Mar 22 |
Product 3 | Jan 22 | Feb 22 | Mar 22 |
Product 4 | Jan 22 | Feb 22 | Mar 22 |
以下の表には式「ITEM(Products)
」の結果が表示されています。
Jan 22 | Feb 22 | Mar 22 | |
Product 1 | Product 1 | Product 1 | Product 1 |
Product 2 | Product 2 | Product 2 | Product 2 |
Product 3 | Product 3 | Product 3 | Product 3 |
Product 4 | Product 4 | Product 4 | Product 4 |
IF THEN ELSE を使用した ITEM 関数
ITEM 関数と IF THEN ELSE 関数を併用することで、適用可能なリスト アイテムに応じて変化する条件式を作成できます。
「Products」と「Organization」という二つのリストをディメンションとするモジュールを例にとってみましょう。特定の製品、又は複数の製品の計算が必要な場合は、次の式を使用できます。
IF ITEM(Products) = Products.Product 1 THEN (
Calculation for Product 1
) ELSE (
Calculations for other products
)
IF ITEM(Products) = Products.Product 1 OR Products.Product 2 THEN (
Calculation for Product 1 or Product 2
) ELSE (
Calculations for other products
)
次のようにして AND 演算子を使用することで、「Product」リストと「Organization」リストの特定の組み合わせにのみ適用される計算を指定することもできます。
IF ITEM(Products) = Products.Product 1 AND ITEM(Organization) = Organization.Company 1 THEN (
Calculation for Product 1 and Company 1
) ELSE (
Calculations for other products and companies
)
リストを使用した例
この例では、列に「Organization」リスト、行に「Class」ライン アイテムがあります。「Class」ライン アイテムのデータ型はリストで、「Company Class」リストを参照しています。「Class」ライン アイテムでは、ITEM 関数を使用して「Organization」リストの特定のアイテムを「Company Class」リストの異なる値に割り当てています。使用する式は次のとおりです。
IF ITEM(Organization) = Organization.'Company 01' OR Organization.'Company 05' THEN Company Class.Class A ELSE IF ITEM(Organization) = Organization.'Company 08' THEN Company Class.Class C ELSE Company Class.Class B
Company 01 | Company 02 | Company 03 | Company 04 | Company 05 | Company 06 | Company 07 | Company 08 | |
Class | Class A | Class B | Class B | Class B | Class A | Class B | Class B | Class C |
時間を使用した例
この例では、列に時間、行に「Product Release Status」ライン アイテムが表示されています。「Product Release Status」ライン アイテムのデータ型はリストで、「Product Status」リストを参照しています。「Product Release Status」ラインでは、ITEM 関数を使用して、時間軸に基づいて異なる時間軸を「Product Status」リストの異なる値に割り当てています。使用する式は次のとおりです。
IF ITEM(Time) < TIME.'Apr 21' THEN Product Status.Before Release ELSE Product Status.After Release
Jan 21 | Feb 21 | Mar 21 | Apr 21 | May 21 | Jun 21 | Jul 21 | Aug 21 | Sep 21 | Oct 21 | Nov 21 | Dec 21 | |
Product Release Status | Before Release | Before Release | Before Release | After Release | After Release | After Release | After Release | After Release | After Release | After Release | After Release | After Release |