■記事リスト / ▼下のスレッド
□投稿者/ ミーノ -(2024/04/16(Tue) 11:10:34)
| 文字置換(関数で)についてお教えください。 項目名:卒業年月日 日時「1999年03月23日」を 項目名:卒業年月 文字列「平成11年03月」※月まで 項目名:卒業年年月日2 文字列「41103」 ※文字の頭が平成は「4」昭和は「3」 令和は「5」
桐Ver.9を使用しています。 よろしくお願いします。
|
|
|
▽[全レス5件(ResNo.1-5 表示)]
■14304 / ResNo.1) |
Re[1]: 文字置換
|
□投稿者/ ONnoji -(2024/04/16(Tue) 14:46:43)
| 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.
> 文字置換(関数で)についてお教えください。
#文字置換関数を使用する方法も可能かと思いますが、その必要性を認めませんでしたので使用していません。悪しからず。(^^ゞ
|
|
|
■14305 / ResNo.2) |
Re[2]: 文字置換
|
□投稿者/ ミーノ -(2024/04/16(Tue) 15:32:14)
| ONnoji 様
助かりました。 ありがとうございました。 今後もよろしくお願いいたします。
|
解決済み! |
|
■14306 / ResNo.3) |
Re[3]: 文字置換
|
□投稿者/ ミーノ -(2024/04/16(Tue) 16:03:37)
| ■No14305に返信(ミーノさんの記事) > ONnoji 様 > 解決しました! としておきながら、すみません。
2022年3月16日 と入力すると、令和34年 3月 となり、53403 となります。 令和 4年 3月 となり、50403 とはならないものでしょうか。 よろしくお願いいたします。
|
|
|
■14307 / ResNo.4) |
Re[4]: 文字置換
|
□投稿者/ ONnoji -(2024/04/16(Tue) 16:58:30)
| 2024/04/16(Tue) 17:01:23 編集(投稿者)
> 解決しました! としておきながら、すみません。 > > 2022年3月16日 と入力すると、令和34年 3月 となり、53403 となります。 > 令和 4年 3月 となり、50403 とはならないものでしょうか。 > よろしくお願いいたします。
失礼しました。令和に変換した時に年が平成年のままでしたね。(^^ゞ
×【変更前】
#sstr( #cond( #str( #年( [卒業年月日] ) ) + #str( #月( [卒業年月日] ), 2 ) < "201905", #元号日付( [卒業年月日], 1 ), 1, #文字置換( #元号日付( [卒業年月日], 1 ), "平成", "令和" ) ), 1, 8 )
〇【変更後】 式が長いので2行にしましたがコピペで動くはずです。
#cond( #str( #年( [卒業年月日] ) ) + #str( #月( [卒業年月日] ), 2 ) < "201905", #sstr( #元号日付( [卒業年月日], 1 ), 1, 8 ) , 1, "令和" + #last( " " + #str( #年( #年数加算( [卒業年月日], -18 ) ) - 2000 ), 2 ) + "年" + #last( " " + #str( #月( [卒業年月日] ) ), 2 ) + "月" )
これでどうでしょうか?
お試しください。
p.s.
以前に #文字置換の回答をしていましたね。
今回のはあの時よりも数段面倒でしたよ。(^^ゞ
|
|
|
■14308 / ResNo.5) |
Re[5]: 文字置換
|
□投稿者/ ミーノ -(2024/04/17(Wed) 09:32:57)
| ONnoji 様
ご面倒をおかけしてすみません。 理想通りでした。 ありがとうございました。 今後ともよろしくお願いいたします
|
解決済み! |
|
■記事リスト /
レス記事表示 →
[親記事-5]
|