WoW2020 W8からの学び:文字列を結合させる方法




今回のPOINTは、どうやってHealth Checks not Completeを表示させるか?
複数行にわたるHealth Check Nameを一つにまとめて、それをもとにフィルターも設定させる仕組み。

//Meaures Not MetのPREVIOUS_VALUE("")理解が壁。
PREVIOUS_VALUE関数は再帰関数なので、単独で使用した場合、最終的に最初の行を参照することになるため、どの行でも、「指定された式」の値が返ることになるためです。


PREVIOUS_VALUEがなかなか理解できなかったので調べてみると「文字列の結合方法について」との記事にたどり着きました^^

"PREPREVIOUS_VALUEは前の行の同じ計算の値を返す関数ですが、こちらは文字列でも使用可能です。そのため、「PREVIOUS_VALUE(“”)+ATTR([顧客名])」として表計算を調整することで文字列を結合していくことが出来ます。


これを参考に『PREVIOUS_VALUE("") + ATTR([Health Check Name]』を作ってみると




ここまでの学びをもとに、//Meaures Not Metの記載内容をチェック!
PREVIOUS_VALUE()の()←が何を意味しているか分からなかったけど、TWITTERで「Satoshi Ganeko」さんにご教授いただいて、やっと理解できた^^
本当に感謝です!!

”カッコの中は、表計算の開始点、つまりpreviousにあたるものがない場合の開始値です。”

◆Health Check not Completeに表示するテキスト
//Meaures Not Met
IF NOT CONTAINS([Previous], [Unique Value] )
THEN
PREVIOUS_VALUE("") + IIF(INDEX()=1, "", ", ") + ATTR([Health Check Name])
ELSE 
PREVIOUS_VALUE("")
END

//Delimiter
 ","
//Previous
 [Delimiter]+PREVIOUS_VALUE("")+[Delimiter]
//Unique Value
 [Delimiter]+attr([Health Check Name])+[Delimiter]

◆1つのMember IDで複数行ができるので最終行を選択
//Last   =“真”
last()=0
↑ このフィルターを外すとHealth Checks CompleteがList containsで設定した一番最初の行が表示される。


ーーーその他の学びは下記の通りーーーー

◆ヘッダーがない項目のヘッダーを作成
今回はVizの中に数値がなかったので、マークに配置したテキストに対するヘッダーがない状態。そこにヘッダーをつけるため、列に直接テキストを入力し、ピルを作成。

◆パラメーターに設定した文字列でのフィルターを実現
//List contains?    =“真”
[List must contain]="All"
or  CONTAINS([Meaures Not Met],[List must contain])
↑ パラメータに設定された文字列がAll、またはMeaures Not Metに含まれているか?
↑ パラメータでのフィルターを実現させるフィルター。

//total
size()
↑パーティション内の行数を返す。
Member ID単位にHealth Check Nameがいくつあるかを算出。








コメント

このブログの人気の投稿

【解決!】セカンドスクリーンに表示されるデスクトップアイコンをメインスクリーンに表示する方法

以外と簡単!?tableau パラメーターアクションを使ってドリルダウンする方法