UNRAVELファンクションは、代入文と組み合せて使用し、式のディメンションが変数のディメンションと異なる場合に、式の値を変数のセルにコピーするファンクションです。
代入文を使用して作成した代入文は、ターゲット変数のディメンション・ステータスをループ処理することにより、UNRAVELから取得した値を代入します。変数の定義にリストされている最初のディメンションは、最も速く変化します。UNRAVELは、式の値を同じように取得し、最も速く変化する最初のディメンションを持つ式のディメンション・ステータスをループ処理します。UNRAVELによる値の取得順序を変更するには、ループ処理の対象となるディメンションを指定します。
パラメータ
コピーの対象となる値が属している式。
ループ処理の対象となる1つ以上のディメンションを指定します。最初に指定したディメンションは、データが解読されると、最も速く変化します。
UNRAVELでディメンションを指定すると、デフォルトのループ処理順序や式を解読する範囲が変更されます。デフォルトでは、式のすべてのディメンションが解読の範囲です。ただし、式のすべてのディメンションではなく一部を指定した場合、指定しなかったディメンションは解読されません。そのかわりに、解読される値は、省略した各ディメンションの最初の値のみになります。
使用上の注意
ワークシート・データの移動
UNRAVELの一般的な用途の1つは、ワークシートから変数へのデータの移動で、これは、ワークシートのディメンションは、通常、変数のディメンションとは異なるためです。例8-157「ワークシートから変数へのデータのコピー」を参照してください。
追加のターゲット・セルの埋込み
代入文が式の最後の値を使用した後に、(この代入文を使用して作成した)埋込みを目的とする代入文のターゲットにセルが残っている場合、UNRAVELは最初の値から埋込みをやり直します。
ステータスの設定
解読した値を代入する順序は、変数と式の両方のディメンションの現行のステータスによって決まるため、セルが適合するように、適切なLIMITコマンドを指定していることを確認してください。
データ値の代入
データ値の代入方法は、SETを参照してください。
例
例8-157 ワークシートから変数へのデータのコピー
あるアナリティック・ワークスペースで、一部の製品の価格データをスプレッドシートからワークシートにインポートしました。ここで、newprice
という変数にデータを送信します。pricedata
というワークシートのレポートを生成するには、次の文を発行します。
LIMIT wksrow TO 1 TO 6 LIMIT wkscol TO 1 2 3 REPORT pricedata
これが生成されたレポートです。
-----------PRICEDATA------------ -------------WKSCOL------------- WKSROW 1 2 3 -------------- ---------- ---------- ---------- 1 Jan95 Jan96 2 Tents 191.39 194.00 3 Canoes 279.92 300.00 4 Racquets 83.34 85.00 5 Sportswear 107.90 110.00 6 Footwear 183.18 195.00
行1には月のラベルが、列1には製品のラベルがそれぞれ入っていることがわかります。変数newprice
は、その定義に示すように、month
およびproduct
によってディメンション化されています。
DEFINE newprice VARIABLE DECIMAL <month product> LD Wholesale Unit Selling Price
ワークシートのディメンション(wkscol
およびwksrow
)はnewprice
のディメンションとは異なりますが、ワークシートに格納されているデータは変数への転送に適した形に編成されています。
ただし、ワークシートのすべての行および列からデータを取得するわけではないため、wkscol
およびwksrow
を、価格データ自体が格納されている行と列に制限します。
LIMIT wkscol TO 2 3 LIMIT wksrow TO 2 TO 6
また、変数newprice
に値を設定するのは、1995年1月と1996年1月のみです。したがって、まずmonth
をこれらの値に制限してから、UNRAVELを使用して代入文を入力し、ワークシートから変数へ値を移動します。
LIMIT month TO 'Jan95' 'Jan96' newprice = UNRAVEL(pricedata)
wkscol
は最も変化の速いディメンションであるため、UNRAVELファンクションのディメンションを指定する必要はありません。したがって、2つの月とも、最初の製品の価格データを解読してから2番目の製品に移ります。この変数の最も変化の速いディメンションはmonth
であるため、SETによって変数に代入される値の順序は同じになります。
newprice
のレポートは次のようになります。
------NEWPRICE------- --------MONTH-------- PRODUCT Jan95 Jan96 -------------- ---------- ---------- Tents 191.39 194.00 Canoes 279.92 300.00 Racquets 83.34 85.00 Sportswear 107.90 110.00 Footwear 183.18 195.00