【MotionBoard】年度切り替え問題を解消する‐検索条件をif文のように考える‐
タイトルだけ見ると「なんじゃそりゃ」ですね。
どう書けば良いかわからなかった。
★第11回★年度切り替え問題を解消する‐検索条件をif分のように考える‐
●日付検索で「当会計年度」「前会計年度」などを使用していると、年度切り替え時に起きること
例えば、このように前年度と当年度のデータを比較するチャートがあったとします。
このチャートではDS1で前年度のデータを、DS2で当年度のデータを取得しています。
データの検索条件はこのような感じ。
そしてこのチャートは”常に先月締め”のデータを表示しています。
今でいう2021/1でしたら、2020/12〆のデータまでを出しています。
で、このまま年度が替わり、4月になったらどうなるかというと、はいどーーん。
何が起きたかというと、検索条件で「前会計年度」「当会計年度」と設定しているので「2020年度」「2021年度」のデータが表示されてしまうんですね。
ただ、このチャートは”常に先月締め”のデータを表示しているので、本当なら「2019年度」「2020年度」のデータが見たいのです。
「2020年度」「2021年度」のデータは4月が締まってからで良いのです。
さて……困った。
●手順1:『月』を判断する項目を用意する
解消するためには、検索条件をどうにかしないとですね。
単純に考えると、”4月以外は「前会計年度」「当会計年度」を表示させる、4月は「前々会計年度」「前会計年度」を表示させる”ように条件を指定できればよいわけです。
「え、MotionBoardの検索条件ってそんなif文みたいな関数使えるの??」
はい、使えません。(えーーーー)
なのでif文のような考え方をするために、検索設定にある結合条件をうまく利用します。
まず下準備として、システム変数を用意します。
管理>システム設定>全般>変数 より、システム変数の画面を表示して、このような変数を作成します。
これは、当月の「月」の数字部分のみ表示させる変数です。
(この変数、標準であったのか自作したのか忘れてしまったので……標準であればそれを使用してください)
(標準であったのは「thisMonth」だったかな……。それなら手順2の日付の検索は二桁表示(1月なら"01"みたいに)にしてください)
次にカスタム項目を作ります。カスタム項目で、名を「変数_当月」とし、値を「${THISMONTH}(先ほどのシステム変数)」とします。
カスタム項目、計算式の中に<>マークがないのでシステム変数使えないのかな~と思っていたのですが、実は使えるんですね~。
追記:
カスタム項目でシステム変数を使えるかどうかは、システム設定の内容によります。
システム変数が使えない場合は、システム設定>全般>セキュリティの「カスタム項目でシステム変数を利用する」にチェックを入れてください。
(詳しいオンラインマニュアルはこちら)
はい、これで常に当月を表示する項目ができました!
では次はこれを使って、条件を指定していきます。
●手順2:作成した項目を使って条件を指定する
検索条件では、上述した通り
”4月以外は「前会計年度(DS1)」「当会計年度(DS2)」を表示させる、4月は「前々会計年度(DS1)」「前会計年度(DS2)」を表示させる”
という内容で設定すればよいわけです。
なので、まずはこのように結合条件を配置します。
ここに、先ほど作成した「変数_当月」を置きまして、それぞれ内容をこのように指定していきます。
「変数_当月」には、常にシステム変数で「当月」の数字が入ってくるため、これによりif文のように『当月が4月だった場合』と『当月が4月以外だった場合』で場合分けができるのです。
あとはここに、このように4月だった場合とそうでない場合の年度の指定を入れてあげれば良いのです。
で、これはDS1の前年度の分なので、DS2の今年度の分も同じように条件を指定してください。
(検索対象でDS指定するの間違えないでね)
完成!!
●他の使い方
他にも、このような使い方もできます。
例えばこんな感じで取り扱い商品のデータがあったとして、そのデータを「お菓子」「おもちゃ」「洋服」で検索して表示させたい、という場合。
カスタム項目で、「変数_検索種類」を作ります。
「変数_検索種類」には変数を指定しておいて、この変数はコンボボックスを選択したときに値が入るようにします。
そのデータに対して、こういう感じで条件を組めば、欲しいデータが抽出されます。
上記の年度指定の応用版みたいな使い方ですね。
ちなみに。
手順2までの会計年度指定の例に関して言えば、今回のような方法の他にも、日付テーブルを使って指定する方法もあるなかなと思います。
日付テーブルについてはユーザーコミュニティのnestでも話題になっていたので、興味のある方は見てみてください。
(リンクの閲覧にはfacebookでのグループ承認が必要です)
●つまり、検索のためだけのカスタム項目を作るということ
上記の例の「変数_当月」や「変数_検索種類」のように、検索のためだけの項目を作ってしまう、という方法を知ったときは結構衝撃でした。
そういう考え方があるのか!みたいな。
検索に必要な項目をカスタム項目で作ってしまい、そこにシステム変数を入れる、という方法は結構使えるのではないでしょうか。