Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
下記のようなテーブルがあり、QlikSenseにて並列ステートを使用してメジャーを作成しデータソース比較をできるようにしています。
そこで、選択したデータAとデータBの8月単月を比較して、分類ごとにそのIDの件数が増加したか、減少したか、それとも合致するかを表したいです。
■テーブルイメージ
--------------------------
データソース,年月,ID,分類
2025年4月予測,2025-07-01,S001,A
2025年4月予測,2025-08-01,S001,A
2025年4月予測,2025-08-01,S002,A
2025年4月予測,2025-08-01,S006,A
2025年5月予測,2025-06-01,S001,A
2025年5月予測,2025-08-01,S001,A
2025年5月予測,2025-08-01,S002,A
2025年5月予測,2025-08-01,S003,A
2025年5月予測,2025-08-01,S004,A
2025年5月予測,2025-08-01,S005,A
2025年6月予測,2025-08-01,S001,A
2025年6月予測,2025-08-01,S002,A
2025年4月予測,2025-08-01,S010,B
2025年5月予測,2025-08-01,S010,B
2025年4月予測,2025-08-01,S020,B
2025年4月予測,2025-08-01,S030,B
--------------------------
並列ステート:
・当月データ(データソースが"2025年5月予測"を選択)
・前月データ(データソースが"2025年4月予測"を選択)
・当年月選択([年月.autoCalendar.YearMonth]が"2025-08"を選択)
メジャー想定:
・単月_ID件数:Count({<[年月.autoCalendar.YearMonth]=[当年月選択]::[年月.autoCalendar.YearMonth]>}[ID])
--------------------------
■ほしい出力結果テーブル(メジャー:単月_ID件数)
| | || 分類 |
|データソース| 増減フラグ|| A | B |
| 当月データ | 増加 || 3 | 0 |
| 当月データ | 合致 || 2 | 1 |
| 前月データ | 減少 || 1 | 2 |
| 前月データ | 合致 || 2 | 1 |
(合致の値は分類別の当月・前月データで同じ数となる)
■質問事項
出力テーブルに必要な、下記のようになる軸「増減フラグ」を作成するにはどのようにすればよろしいでしょうか。またそれを使用して、ほしい出力結果を出す方法をご教示いただけますと幸いです。
・「増減フラグ」条件
データA、データBにも同じIDが存在する:合致
データAに存在するがデータBに存在しない:増加
データAに存在しないがデータBに存在する:減少
G1: 2025年度5月予測
G2: 2025年度4月予測
当年月選択: 2025-08-01
のとき、現在のデータで下記の結果となってほしいです。
(2025年8月の、カテゴリが"あ"を含み、IDが'S001'ではないデータのうち、G2に対してG1のIDが増加・減少・合致したかを表示したい)
| | || 分類 |
|データソース| 増減フラグ|| A | B |
| 当月 | 増加 || 3 | 1 |
| 当月 | 合致 || 0 | 1 |
| 前月 | 減少 || 1 | 3 |
| 前月 | 合致 || 0 | 1 |
現状では、
分類AのS003と分類BのS010が正しく判別できていないようです。
========
念のため、データテーブルをこちらにも記載します。
データソース,年月,ID,分類,カテゴリ,施策
2025年4月予測,2025-07-01,S001,A,あか,ぱんだ
2025年4月予測,2025-08-01,S001,A,あか,ぱんだ
2025年4月予測,2025-08-01,S002,A,しろ,ぱんだ
2025年4月予測,2025-06-01,S003,A,あか,ぱんだ
2025年4月予測,2025-08-01,S006,A,あか,いぬ
2025年5月予測,2025-06-01,S001,A,あか,いぬ
2025年5月予測,2025-08-01,S001,A,あか,ぱんだ
2025年5月予測,2025-08-01,S002,A,しろ,ぱんだ
2025年5月予測,2025-08-01,S003,A,あか,ぱんだ
2025年5月予測,2025-08-01,S004,A,あか,ぱんだ
2025年5月予測,2025-08-01,S005,A,あか,ぱんだ
2025年6月予測,2025-08-01,S001,A,あか,いぬ
2025年6月予測,2025-08-01,S002,A,あか,いぬ
2025年4月予測,2025-08-01,S010,B,あか,いぬ
2025年5月予測,2025-08-01,S010,B,しろ,いぬ
2025年4月予測,2025-08-01,S020,B,あか,ぱんだ
2025年4月予測,2025-08-01,S030,B,あか,いぬ
2025年4月予測,2025-08-01,S040,B,あか,ぱんだ
2025年5月予測,2025-08-01,S040,B,あか,ぱんだ
2025年5月予測,2025-08-01,S050,B,あか,いぬ
諸々変更しました。一応、正解と思われる結果になっています。
変更は以下の通りです。
・IDの特定をConcatで実施
・変数にConcatを使用したIDの抽出を実施(要素セット関数を使用する際に必要)
・変数はG1、G2用に作成
・要素セット関数を使用したステートごとのIDの抽出に変更
・年月の選択状態はConcat内のSet分に格納(Count内だと無視されるため)
・S001の除外は - {'S001'}で対応
サンプルアプリを確認ください。
Concatではなく、Countでも実装可能と思いますがIDの確認をするためにConcatで実装しています。
データ量が多い場合はCountで実装する方がパフォーマンスは確実に良いです。
ありがとうございます!
ご提示いただいた変数を使用する方法で、そのままでは自身の環境では上手くいかなかったのですが少し式を変更してみたところ自身の環境でも実現することができました...!
変数を使う方法やset式の使い方、とても勉強になりました。
ご回答いただき誠にありがとうございました。
______
理由はわからずですが、自分の環境では下記のような形でほしい数字が出ました。もしどこかで他の方の参考になれば。
pick(match(増減フラグ,'増加','減少','合致'),
Count({<データソース=[G1]::データソース,[ID] -= {$(v_ConcatG2)},[年月]=[当年月選択]::[年月],カテゴリ={"*あ*"}>} [ID]),
Count({<データソース=[G2]::データソース,[ID] -= {$(v_ConcatG1)},[年月]=[当年月選択]::[年月],カテゴリ={"*あ*"}>} [ID]),
Count({[G1]<[ID] = P({[G2]<[ID]={$(v_ConcatG2)}>} [ID]) - {'S001'},[年月]=[当年月選択]::[年月],カテゴリ={"*あ*"}>*<施策=$::施策>} [ID]))