過去の桐井戸端BBS (桐ver.9)
26837 一括処理で年月のデータを比較するにはどうしたらよいのでしょうか 山田 2004/06/28-21:57
毎度つまらない質問で恐縮ですが

V5で、表の項目[年月]を文字列と設定して次のような一括処理をしていました。

キー入力 プ="和暦 (YY.MM)(=年と月は2桁でね!!),&期末
&前期末 =#部分列(#月数加算(&期末,-12,1),1,5)
置換 [期別]=#条件選択([年月]>&前期末.AND[年月]<=&期末,"当期")

( [年月]には、V5のデータですから、16.03とか15.03とかが文字列で入っています。)

この一括をV9へ移しました。

環境設定では、
04/06/28
としました。
本当は、04.06したいのですが、年が2桁の場合、 ”.”の区切り記号はないみたいですね。

キー入力で16.05と入力すると、&前期末は"15/05"とうまく前年になりました。
(ただ、”/”は全角のような気がします)
     
しかし、当然[年月]のたとえば"15.05"とは比較できませんね。
したがって、上記一括の置換がうまく動きません。

 なお、和暦にしているのは、個人的に和暦が好きなこと、昭和の年月との混同が
平成も15年にもなると全くないデータですので、
西暦に直すことでうまく行くなら、西暦への年月の変換方法をご教授くださっても結構です。

いかがすべきでしょうか。よろしくお願いします。

26839 原則は日時型を使うべきなのでしょう 佐田 守弘 2004/06/28-22:25
記事番号26837へのコメント
山田さん
原則は日時型を使うべきなのかと思います。
ただし、日時型は年月日(正しくは時分秒まで)の値です。
使うのは年月だけの様ですので、仮に日は1日に固定してしまい、値として年と月だけを
印刷に使うという方法は考えられます。

すでに出来ている日付の後ろに形の上で1日つまり「.01」を付加しておき、
これを文字列型から日時型に変更すれば日時型に変わります。
あるいは新たに別の日付の項目を作り、ここに現在の日付の後ろに「.01」を付け加えた値を置換で入力してから、
日時型に変更しても構いません。

●日時型の利点
日付の比較が簡単にできるとが真っ先に挙げられます。
半期、四半期毎にグルーピングする事も出来ます。
そして何よりの利点は、和暦と西暦の区別を考えなくてよい事です。
西暦で入力しても、和暦で入力しても正しい日付が入りますし、
表示のフォーマットだけで和暦、西暦の表示を切り替えられます。
これは印刷時にも同じです。

日のデータが不要な場合ですが、#年、#月、あるいは#元号年関数で
必要なデータを取り出して印刷することが出来ます。

佐田守弘(KS-00119)
26849 Re:できました ありがとうございます 山田 2004/06/29-17:18
記事番号26839へのコメント
佐田 守弘さん いつもお世話になり、ありがとうございます。

日付型にしましたが、すると一括のあちこち直す必要がでてきました。

ふと気がついて、[年月]を文字置換して、”.”を”/”に置き換えたところ、従来の一括でうまく動きましたので、
とりあえずこの方法で行くことにしました。

戻る