HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

■14303 / 親記事)  文字置換
  
□投稿者/ ミーノ -(2024/04/16(Tue) 11:10:34)
    文字置換(関数で)についてお教えください。
     項目名:卒業年月日  日時「1999年03月23日」を
     項目名:卒業年月   文字列「平成11年03月」※月まで
     項目名:卒業年年月日2 文字列「41103」 ※文字の頭が平成は「4」昭和は「3」  
                          令和は「5」

    桐Ver.9を使用しています。
    よろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■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.

    > 文字置換(関数で)についてお教えください。

    #文字置換関数を使用する方法も可能かと思いますが、その必要性を認めませんでしたので使用していません。悪しからず。(^^ゞ



引用返信 [メール受信/OFF] 削除キー/
■14305 / ResNo.2)  Re[2]: 文字置換
□投稿者/ ミーノ -(2024/04/16(Tue) 15:32:14)
    ONnoji 様

    助かりました。
    ありがとうございました。
    今後もよろしくお願いいたします。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■14306 / ResNo.3)  Re[3]: 文字置換
□投稿者/ ミーノ -(2024/04/16(Tue) 16:03:37)
    No14305に返信(ミーノさんの記事)
    > ONnoji 様
    >
    解決しました! としておきながら、すみません。

     2022年3月16日 と入力すると、令和34年 3月 となり、53403 となります。
                    令和 4年 3月 となり、50403 とはならないものでしょうか。
    よろしくお願いいたします。
引用返信 [メール受信/OFF] 削除キー/
■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.

    以前に #文字置換の回答をしていましたね。

    今回のはあの時よりも数段面倒でしたよ。(^^ゞ

引用返信 [メール受信/OFF] 削除キー/
■14308 / ResNo.5)  Re[5]: 文字置換
□投稿者/ ミーノ -(2024/04/17(Wed) 09:32:57)
    ONnoji 様

    ご面倒をおかけしてすみません。
    理想通りでした。
    ありがとうございました。
    今後ともよろしくお願いいたします
解決済み!
引用返信 [メール受信/OFF] 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -