ピボットテーブルで売上集計を作っています。
簡単な例で申し上げますと
年月テーブルがあり そこから例えば 201304 201404 201405 の3か月を選択したとします
集計数式は単純で sum( sales) です。
その隣の列に 前年同月売上 を出したいと思っています
その場合は 選択したものの各々の1年前 すなわち 201204 201304 201305 の 合計を出そうとしています
その部分の 数式を書きたいのですが
マニュアルでは SET分で Year = { $(=(max(Year) -1 )) } が紹介されているのですが、この場合は
上記ではないと思います。 各々の選択された 3つの月を それぞれ 1年前にして 前年集計を出したいので
どなたか数式例をご教示戴けないでしょうか 宜しくお願いいたします。
すいません、replace関数はいりませんでした。
sum({<年月={$(=chr(39)&concat(DISTINCT (年月-100),chr(39)&','&chr(39)) & chr(39))}>} Sales)
軸を 『年度+月』 にしてると横に並ばなくないですか?
私が前に作ったのは、下記のような表で、左から
月(軸) → = month ( sales ) & '月'
実績(以下数式) → Sum ( sales )
累積 → RangeSum ( Above ( Sum ( sales ) , 0, RowNo()))
前年実績 → Sum ( {$<年度 = {$(#=Only(年度)-1)}>} sales ) ・・・
みたいな感じにしてみました。
年度はリストボックスで選択できるように作ったんで、今のだけ出すならset分析の中身がOnlyじゃなくmaxですかね。
参考までに。
軸項目は何になりますか?
これによって方法が変わってきます。
軸に年月はありません。 あくまでリストボックスで対象年月を選択します。
ピボットは 簡単には こんな感じです。
数式は面倒ですが、concat関数とかを使用して対応可能です。
sum({<年月={$(=chr(39) & replace( concat(DISTINCT (年月-100),',') ,',',chr(39)&','&chr(39)) &chr(39))}>} Sales)
QVから貼り付けできなかったので書式が正しいか確認が必要ですが、上記で前年実績が出ると思います。
年月が日付型の場合は、年月-100の部分をAddmonth(年月,-12)に置き換えれば良いはずです。
すいません、replace関数はいりませんでした。
sum({<年月={$(=chr(39)&concat(DISTINCT (年月-100),chr(39)&','&chr(39)) & chr(39))}>} Sales)
【確認が遅れて申し訳ありませんでした。】
お!!!! なるほどなるほど!
concatで条件を並べる訳ですね。非常に参考になりました。有り難うございました!