はじめまして。
tableau desktopを使用して、member id毎の購入金額を算出したいのですが、下記の条件で計算をすると何故か表示されない行があり困っております。
↓の画像はtableauの状態を再現したものとなっております。
前提として、Coupon Discount(F列)の中には
①自社商品券の利用金額
②自社商品券以外のクーポン(誕生日クーポン等)
が存在します。
その上で、①商品券を利用した場合のみ、その金額を足して集計したいのです。
なので、まず商品券フラグ(C列)で、クーポン名のカラムの「ギフト/GIFT」のワードが入っているかで、フラグを立てています。
IF REGEXP_MATCH([Coupon Name],'ギフト|GIFT')
THEN 1
ELSE 0
END
その上で、price_商品券(G列)に商品券フラグ以外のクーポンの場合、0にしています。
if [商品券フラグ]=1 then [Coupon Discount] else 0 end
そして、最終的にprice_税抜き、商品券込み(H列)に以下の数式で合計金額を出したのですが、、、
([Price Payment]+[Price Shipping]+[price_商品券])/1.1
結果として、↓の画像のようになってしまいます。
何らかのクーポンを利用した人に関しては正しく計算されるのですが、黄色いセルのところのようなクーポン類を利用してない方に関しては、表示されなくなってしまいます。
私のイメージとしては、例えば5行目(member ID:11112)に関してはG列がnullであれば(28,800+1,100)/1.1=27,181になると思うのですが、何故かならずに要因が分からず困っております。
長文となってしまい申し訳ございませんが、ご教示の程よろしくお願い致します。
@Tatsuya Kawabata さん
こんにちは。
私の手元で再現を試みたダミーデータでは、ZNを消すと値が表示されなかったのでそれを提案してみたのですが、
Saitoさんがおっしゃるようにデータ構造のほうも影響しているのですね。。。
ちなみに、もしお時間ありましたら以下も試してみてください。
個々のカラムを先に集計する式にしました。
(こちらでリレーションシップを試しに部分的に再現したところ、確かに元の式ではNULLのままで、 以下にすると表示できました。商品券フラグだけ別データからリレーションにて)
(zn(sum([Price Payment]))+zn(sum([Price Shipping]))+zn(sum([Price_商品券])))/1.1
※マークや行・列に追加する際は元々のカラムを一度消して、再度追加してください。
(元案は計算のあと合計する案で、今回のは合計してから計算のため、計算過程が異なるので式の編集だけではエラーが残る可能性)
上記もダメでしたら、Saitoさんがおっしゃるようにあなたの状況の再現が必要と思われます。