過去の桐井戸端BBS (桐ver.9)
24366 前月から3ケ月分のデータを絞り込んで1年前と比較したいのですが比較式の書き方がわかりません satake 2004/01/22-20:49
前月から3ケ月分のデータを絞り込んで1年前と比較したいのです。

項目が[年]、[月]とあり
「前3ケ月対前年比較」の条件名
絞り込み−条件名−絞り込み:検索条件 で
条件1に[年]を  &年-1<=[]<=&年
    [月]を  &月-3=<[]<&月
としています。

条件2に[年]を  &年-2<=[]<=&年-1
    [月]を  #条件選択(&月=1,[]>=10)
としました。

&月が4月から12月までの時はうまく絞り込めるのですが1月になったらだめです。
上記の  #条件選択(&月=1,[]>=10)
の書き方がいけないようなのです。
しかたなく今月は比較式に手入力で []>=10 
と入力しているのですがどのように
記述したらいいでしょうか。

桐9−2004です。

24367 月の加算と減算 toshi-chan 2004/01/22-23:34
記事番号24366へのコメント
satakeさん、こんばんは。

時々はまってしまうパターンですね。
おそらく、
   &月-3
と書いている部分が問題です。
この式だと4月以降はうまく動作しますが、1〜3
月の場合はうまくいきません。なぜならば、計算の結果が 
  1月の場合は −2
  2月の場合は −1
  3月の場合は  0
になってしまい、それに対応する月は存在しないからです。
このような場合に私が採っている方法ですが、例えば前月の月の値を得るには、
 @ #年月日 で今日の日付を求める。
 A @の結果を  #月数加算  に代入して1ヶ月前の日付を求める。
 B Aの値を #月 に代入して「月」の値を得る。
という手順をとります。
こうすれば、今月は1月ですが、前月の値「12」を得ることができます。
(Aで #月数加算 を使うとき、引数を間違えないようにしてください。)
24380 Re:検索条件の比較式の書き方 今村 誠 2004/01/23-15:28
記事番号24366へのコメント
satakeさんこんにちは

計算項目[年月]=[年]*100+[月]を作成して、
そこを絞り込んだ方が簡単ではないでしょうか。
例えば絞り込み→比較式で

#年(#月数加算(#日時値,-3,1))*100
+#mod(#月(#日時値)+11-3,12)+1=<[年月]

日時型の計算項目を新設するのであれば、[年月日]=
#日時値(#STR([年])+"/"+#STR([月])+"/"+#STR([日]))

絞り込み→比較式は
#日時値生成(#年(#月数加算(#日時値,-3,1)),
#mod(#月(#日時値)+11-3,12)+1)=<[年月日]
24381 Re:検索条件の比較式の書き方 うにん 2004/01/23-16:35
記事番号24380へのコメント

>計算項目[年月]=[年]*100+[月]を作成して、
>そこを絞り込んだ方が簡単ではないでしょうか。
>例えば絞り込み→比較式で

100でなく12を掛ければもうちょっと簡単になります。

[年]*12+[月]>=&年*12+&月-3,[年]*12+[月]<&年*12+&月

で前3ヶ月です。その1年前は

[年]*12+[月]>=&年*12+&月-15,[年]*12+[月]<&年*12+&月-12

24386 しくみはわからないができました satake 2004/01/23-20:34
記事番号24381へのコメント
toshi-chan さん 今村さん うにんさん
さっそくありがとうございました。

絞り込み−条件名 で 検索条件の
条件1に上の式
条件2に下の式 を登録したら見事に目的のデータが絞り込まれました。(^_^)v

登録する項目が別に [月] でなくてもなんでもいい点が不思議なのと
この式のしくみが考えてもまだ理解できません。 (?_?)
なんとか理解して応用できるようになりたいです。

今までは毎年1月から3月はうまく絞り込めず
あきらめて手作業でやっておりました。


24395 しくみがわかり勉強になりました。 satake 2004/01/25-11:37
記事番号24381へのコメント
うにんさん
>
>>計算項目[年月]=[年]*100+[月]を作成して、
>>そこを絞り込んだ方が簡単ではないでしょうか。
>>例えば絞り込み→比較式で
>
>100でなく12を掛ければもうちょっと簡単になります。
>
>[年]*12+[月]>=&年*12+&月-3,[年]*12+[月]<&年*12+&月
>
>で前3ヶ月です。その1年前は
>
>[年]*12+[月]>=&年*12+&月-15,[年]*12+[月]<&年*12+&月-12
>


12を掛ければうまくいくという意味がわかりました。

[年] [月] [年]*12+[月] [年]*100+[月]
2004  1 24049  200401
2003 12 24048  200312
2003 11 24047  200311
2003 10 24046  200310
2003  9 24045  200309

それにしてもよく考えつくものですね。ありがとうございました。
(^-^)//""ぱちぱち

戻る