ソース モジュールやリストでの値の検索、マッピング条件を使用したターゲット モジュールでの値の表示に LOOKUP 関数を使用します。 次の例は、モデル内のさまざまなシナリオでどのように LOOKUP を使用できるかを示したものです。
LOOKUP によるリスト内のアイテムの検索
この例は、リスト「Grades」から給与を検索し、「Employee Salaries」モジュールに給与を入力する方法を示したものです。
ソース リストのプロパティ
「Grades」リストには数値形式の「Salary」というプロパティがあります。 「Grades」リストはグリッド ビューで次のように表示されます。
Parent (親) | Code (コード) | Salary | |
Grade 1 | 40,000 | ||
Grade 2 | 45,000 | ||
Grade 3 | 50,000 | ||
Grade 4 | 60,000 |
結果モジュール
「Employee Salaries」モジュールの行には「Employees」リストがあり、列には次の二つのライン アイテムがあります。
- Grade: 「Grades」リストのリストデータ型
- Salary: 次の式を含む数値データ型:
Grades.Salary[LOOKUP:Grade]
「Employee Salary」モジュールで従業員の評価を選択すると、「Grades」リストの対応する値が「Salary」フィールドに入力されます。
複数のマッピングを使用した LOOKUP の例
従業員の給与を検索する必要があると仮定します。評価と地域が反映された「Pay table」モジュールがあり、「Employee salaries」結果モジュールに給与を表示する必要があります。
ソース モジュールと結果モジュールの間のマッピングは「Region」と「Grade」で行います。
「Region」と「Grade」はソース モジュール「Pay table」のディメンションです。これらは結果モジュール「Employee salaries」のリスト データ型ライン アイテムでもあります。
結果モジュールでは、LOOKUP は「Grade」と「Region」のマッピングを使用して、ソース モジュール「Pay Table」とライン アイテム「Basic Pay」から従業員の給与を返します。
「Salary」列で給与を取得するために使用される式は次のとおりです。
Pay Table.Basic Pay[LOOKUP:Grade, LOOKUP: Region]
ソース モジュール
ソース モジュール「Pay Table」のページにはデータ型が数値のライン アイテム「Basic Pay」があります。列に「Region」リスト、行に「Grades」リストがあります。
この表は「Basic Pay」ライン アイテムのデータを示したものです。
Region A | Region B | Region C | Region D | |
Grade 1 | 20,000 | 21,000 | 25,000 | 33,000 |
Grade 2 | 30,000 | 31,000 | 35,000 | 38,000 |
Grade 3 | 40,000 | 41,000 | 45,000 | 49,000 |
結果モジュール
「Employee salaries」モジュールの行には「Employees」リストがあり、列には次のライン アイテムがあります。
- Grade: 「Grades」リストのリスト データ型
- Region: 「Regions」リストのリスト データ型
- Salary: 次の式を含む数値データ型:
Pay Table.Basic Pay[LOOKUP:Grade, LOOKUP: Region].
次の表は「Employee salaries」モジュールの内容を示したものです。従業員ごとに「Grade」と「Region」を選択すると、選択した従業員の「Salary」の値が LOOKUP 式によって入力されます。
Employees | Grade | Region | Salary |
Employee x | Grade 2 | Region B | 31,000 |
Employee y | Grade 3 | Region C | 45,000 |
Employee z | Grade 3 | Region A | 40,000 |
時間軸を使用する LOOKUP の例
この例は、時間軸で LOOKUP を使用する方法を示したものです。ソース モジュール「Pay region」と結果モジュール「Staff costs」があります。「Pay region」モジュールでスタッフのコストを検索し、「Region」と「Period」ごとにコストをマッピングします。
LOOKUP と時間軸
マッピング ライン アイテムのデータ型よりソース ライン アイテムのタイムスケールが細かい場合に LOOKUP を使用できます。また、マッピング ライン アイテムのディメンションよりもターゲット ライン アイテムのディメンションのタイムスケールが細かい場合にも LOOKUP を使用できます。
ただし、結果で使用するタイム スケールがソースにない場合、LOOKUP で 0 が返されます。 たとえば、結果で半年の合計を選択し、それをソースで選択しなかった場合、LOOKUP では 0 が返されます。
ソース モジュール
ソース モデル「Pay region」のページには数値形式のライン アイテム「Pay」があります。列に「Regions」リスト、行に時間ディメンションがあります。
この表は「Pay line」アイテムのデータを示したものです。
Jan | Feb | Mar | |
Americas | 160,667 | 166,500 | 176,250 |
Europe | 166,833 | 166,833 | 166,833 |
Asia Pacific | 129,333 | 137,000 | 143,917 |
All Regions | 456,833 | 470,333 | 487,000 |
結果モジュール
結果モジュール「Staff costs」の列には次のライン アイテムがあります。
- Region: 「Regions」リストのリスト データ型
- Period: 月が選択された時間軸データ型
- Costs: 次の式を含む数値データ型:
Pay region.Pay[LOOKUP:Regions, LOOKUP:Period]
行には「Transactions」リストがあります。
このテーブルには「Staff costs」モジュールが表示されています。
Regions | Period | Costs | |
Transaction 01 | Europe | Jan | 166,833 |
Transaction 02 | Americas | Jan | 160,667 |
Transaction 03 | Asia Pacific | Jan | 129,333 |
「Costs」列の値が「Pay region」ソース テーブルから取得されているのがわかります。たとえば、「Transaction 01」の値 166,833 は「Europe」と「Jan」が交差するセルから取得されています。