過去の桐井戸端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 それにしてもよく考えつくものですね。ありがとうございました。 (^-^)//""ぱちぱち |