| 2024/04/16(Tue) 14:57:47 編集(投稿者)
> 文字置換(関数で)についてお教えください。 > 項目名:卒業年月日 日時「1999年03月23日」を > 項目名:卒業年月 文字列「平成11年03月」※月まで > 項目名:卒業年年月日2 文字列「41103」 ※文字の頭が平成は「4」昭和は「3」 > 令和は「5」 > 桐Ver.9を使用しています。
方法としてはいろいろあると思いますが・・・なるべくシンプルにしたつもりです(^^ゞ
1.文字列「平成11年03月」※月まで
#sstr( #cond( #str( #年( [卒業年月日] ) ) + #str( #月( [卒業年月日] ), 2 ) < "201905", #元号日付( [卒業年月日], 1 ), 1, #文字置換( #元号日付( [卒業年月日], 1 ), "平成", "令和" ) ), 1, 8 )
でOKでした。 ※コピペで動きます
この式の意味は次の通りです。
まず基本は、 #元号日付( [卒業年月日], 1 ) です。 ⇒ "元号yy年mm月dd日"
でもこれですと、dd日が混じっていますので除去します。 ⇒ #sstr( #元号日付( [卒業年月日], 1 ), 1, 8 ) ⇒ "元号yy年mm月"
ところが、2019年 5月 以降は元号が"令和"に改元されたので、2019年 5月 以降か否か判定します。
#cond( #str( #年( [卒業年月日] ) ) + #str( #月( [卒業年月日] ), 2 ) < "201905", "平成まで", 1, "令和" ) これは模式的な式です
というのが考え方です。
2.文字列「41103」 文字の頭が平成は「4」昭和は「3」令和は「5」
1.で作成した[卒業年月]の文字列を利用します。
#対応文字列( "1,2,3,4,5", #対応番号( "明治,大正,昭和,平成,令和", #sstr( [卒業年月], 1, 2 ) ) ) 元号を対応する数字に変換
#str( #num( #sstr( [卒業年月], 3, 2 ) ), 2 ) + #str( #num( #sstr( [卒業年月], 6, 2 ) ), 2 ) ⇒ "yymm"
これを連結して完成です。
こちら ※コピペで動きます ↓ #対応文字列( "1,2,3,4,5", #対応番号( "明治,大正,昭和,平成,令和", #sstr( [卒業年月], 1, 2 ) ) ) + #str( #num( #sstr( [卒業年月], 3, 2 ) ), 2 ) + #str( #num( #sstr( [卒業年月], 6, 2 ) ), 2 )
p.s.
> 文字置換(関数で)についてお教えください。
#文字置換関数を使用する方法も可能かと思いますが、その必要性を認めませんでしたので使用していません。悪しからず。(^^ゞ
|