2017-06-15 55 views
0

Qlik Sense Visualization式の日付に基づいて開始値と終了値を取得する方法は?

私はQlikを新しくしています。私は仕事中にこの挑戦の周りに私の頭を包んでいるように見えることはできません。何か案は????????!???!?!?!?!?! (標準ハブで)視覚化において

、私は2つのテーブルと日付(S)のデータに基づいて計算を実行する必要があるユーザは、フィルタペインのDateAsのリストから選択します。二つのテーブル下記の
を与え

。その中の多くのデータは、私はちょうど主キーのデータ= 2

を示していますがあり

表A:
PrimaryKeyA | ValueA | DateA
2 | 300.00 | 2/1/2017
2 | 100.00 | 2/28/2017
2 | 123.45 | 3/1/2017
2 | 0.02 | 3/15/2017
2 | 0.03 | 3/31/2017
2 | 0.01 | 5/1/2017
2 | 67.89 | 2017年6月2日

表B:
PrimaryKeyB |バリューB | DateB
2 | 9.87 | 2/28/2017
2 | 9.86 | 3/31/2017
2 | 9.85 | 4/31/2017
2 | 9.84 | 2017年5月31日


FILTEREDに基づく計算は
結果= FirstValue +合計(ValueA)日付 - 唯一の日付である場合SecondValue


計算規則、PrimaryKeyA = PrimaryKeyB
1。日付フィルタが選択されている場合、SecondValueはDateBがオンのValueBまたはフィルタリングされた日付の直前の値です。
2. Dateフィルタで複数​​の日付が選択されている場合、SecondValueはDateBがオンのValueBまたは最新のフィルタリングされた日付より前に近い値です。

3.唯一の日付が日付フィルタで選択されている場合は、FirstValueは、そのDateB SecondValueのDateB前に最も近いVALUEBです。
4. Dateフィルタで複数​​の日付が選択されている場合、FirstValueはDateBが最も古いフィルタリングされた日付の前に最も近いValueBです。

5一致が見つからない場合、ゼロ値(FirstValue又はSecondValue)を設定します。2017年6月2日

SecondValueは9.84(一致5/IS:


1.利用者は日付フィルタを選択します31/2017ルール1から)
FirstValueは9.85(一致4/31/2 2017年5月1日

: - ルール3)

結果から017 = 9.85 + 67.89 9.84 = 67.9

2.ユーザは日付フィルタを選択します

SecondValueは9.85です(ルール1の2014年4月31日に一致)
FirstValueは9.86です2017年3月1日

: - =

結果(ルール3から2017年3月31日に一致)9.86 + 0.01 9.85 = 0.02

3.ユーザは日付フィルタを選択します

SecondValueは9.87
ファーズ(ルール1から2017年2月28日に一致する)であります2017年3月31日

介して2017年3月1日: - tValue = 0 + 123.45 0(ルール5から不一致)

結果である9.87 = 113.58

4.ユーザは日付フィルタを選択します

SecondValueがFirstValueは9.87(ルール4から2017年2月28日に一致する)

結果= 9.87 +(123.45 + 0.02 + 0.03)である9.86(規則2から2017年3月31日に一致する)
ある - 9.86 = 123.51

5.ユーザーは次の日付フィルタを選択します:2011年3月1日ラフ2017年6月2日

SecondValueが
FirstValueが9.87である9.84(規則2から2017年5月31日に一致)さ

結果(ルール4から2017年2月28日に一致します) = 9.87 +(123.45 + 0.02 + 0.03 + 0.01 + 67.89) - 9.84 = 191。2017年2月1日SecondValueは9.87である

2017年2月28日から(43

6.ユーザは日付フィルタを選択しますルール2の2/28/2017と一致)
FirstValueは0(ルール5との一致なし)

結果= 0 +(300.00 + 100.00) - 9.87 = 390.13


IDEAS
1.私はそのアイデアが出ているのでQlikセンスは、ユーザー定義関数を持っているとは思いません。

2.私は、以下の擬似コードを実行することになり表現を考えていたが、私はこれを達成することができる方法は考えています。

Set MaxDateFilter = MAX(Filtered dates) 
 
    Set MinDateFilter = MIN(Filtered dates) 
 
    If MaxDateFilter = MinDateFilter 
 
    Then (One date selected) 
 
      Set SecondValue = Lookup first match in TableB where DateB =< MaxDateFilter (If no match found, set to 0) 
 
      Set FirstValue = Lookup first match in TableB where DateB < SecondValue's DateB (If no match found, set to 0) 
 
    Else (Date range selected) 
 
      Set SecondValue = Lookup first match in TableB where DateB =< MaxDateFilter (If no match found, set to 0) 
 
      Set FirstValue = Lookup first match in TableB where DateB < MinDateFilter(If no match found, set to 0) 
 
    Result is FirstValue + SUM(ValueA) - SecondValue
3.私は多分、MIN(DateAとDateB)に基づいて、動的に可能な日付が含まれているサブルーチンから新しい表Cを作成することを考えて何とかそれにValueBsを有していましたすべての可能な順列、しかし私は失われています。

4.私はユーザが、とにかく、フィルタで選択したものを見つけることは不可能だと思ったが、私は何を知っていますか。

5.私は(https://community.qlik.com/thread/16998)これを見たが、私はそれだけでQlikViewを、ないQlikセンスだと思います。私が試してみました/調査

を私はQlikに新しいですので、私もここ1で開始するか分からない

THINGS。ここ
は、私が無駄にしようとしたものです:

  • http://help.qlik.com/en-US/sense/3.0/Subsystems/Hub/Content/Scripting/InterRecordFunctions/LookUp.htm)Lookup関数を見https://community.qlik.com/docs/DOC-(動的に生成するマスター・カレンダーを見て16939)と(https://community.qlik.com/thread/66717)、2つの日付(https://community.qlik.com/docs/DOC-5834)をリンクしていますが、選択したユーザーをフィルタリングします。
  • は、設定された分析(https://community.qlik.com/thread/14707)を見たが、それはこのような状況

UPDATEに適用することができるか理解していない:私はより多くの仕事を行っている。私のテーブルが与えられていると、[Transaction Date]でユーザーがフィルタリングするときに、ピボットテーブルの式で使用する値を調べるにはどうすればよいですか?答えはfirstsortedvalue chart functionを使用していたhttp://clairenstreb.brinkster.net/temp/InventoryValues.png

答えて

0

で私の最新のデータとグラフを参照してください。例:

firstsortedvalue ([Beginning Inventory Amount], -[Beginning Inventory Date])

関連する問題