2017-01-05 8 views
1

Tableauには、過去1年間の売上高を示す売上データが含まれています。各顧客は一意のIDを持ち、多くの顧客が戻ってくる。私はどのようにTrueを与えるTableauで計算フィールドを作成するのか把握しようとしています|指定された患者IDが、与えられた期間内に(例えば、所見の6週間以内に)データセットに再び現れるかどうかを誤って答えます。今後の予定表内のIDの観測をTableauで見つける

私はLOOKUPで実行しようとしましたが、時間の増加を効果的に指定できませんでした。

答えて

1

これは私がそれにアプローチする方法です。開始と終了の2つの日付パラメータを作成します。

次に、日付のフィルタ計算を作成します。

[date] >= [param_date_start] 
and 
[date] <= [param_date_end] 

これをTRUEに設定されたフィルタシェルフに配置します。

次に、顧客IDの別のパラメータを作成し、次のように顧客IDの存在をテストできます。

max([customer_id] = [param_customer_id]) 

CUSTOMER_IDが選ばれた寸法や日付範囲のparam_customer_idに等しい少なくとも1つのレコードがある場合にtrueを返します。

この同じアプローチを使用して、計算されたセット、特定の期間内に顧客が購入したすべての製品のセット、または特定のサービスを受けたすべての患者のセットを定義することができます。セットを定義するときに条件タブでこの数式を使用するだけです。

+0

コンセプトは本質的に正しい方向になっていましたが、元の計算では集計と非集計の引数が混在していたため、回答を修正しました。 –

+0

これは6週間の離散私はそこから選択していますが、より動的なものを探しています。それぞれのケースで、その特定の観察よりも6週間先にチェックし、患者IDの繰り返しがあるかどうかを確認し、その後、同じ。以前はRでこれを行い、フラット・ファイルとしてデータをロードしましたが、SQL実装で使用するために自動的に作成するものを作成したいと考えています。 SCRIPT_BOOLを使用しようとしています。 –

+0

これは私が今までに持っているものですが、出力は私が出しているものではありません。 'コードSCRIPT_BOOL(」 は( 'dplyr')を必要とする 必要( 'lubridate') 日付< - as.POSIXct(as.character(.arg2)、フォーマット= '%のM /%D /%Y') アカウント< - (I 1:長さ(アカウント))のための.arg1 - アカウント[(アカウント==アカウント[I])] 右< - 日付[i]が+週間(6) {新しいです< accounts [i] < - ifelse(length(newer)> 0、TRUE) - 左の< - dates [i] + days(3) newer < - 新しい[間(日付、左、右)== TRUE] 、FALSE)} accounts "、 COUNT([アカウントID])、COUNT([完了日])) –

関連する問題