ここから本文です

文字列を指定の場所から抽出する方法と、年数の加算方法について教えて下さい。 ...

a1a********さん

2018/9/2700:55:39

文字列を指定の場所から抽出する方法と、年数の加算方法について教えて下さい。

一つのセルに

名前_年齢/在籍年数
田中_19/01

が入力された管理表を作っています。

年度を更新した際、田中_19/01→田中_20/02
と変更するのですが、現在は

※A3を該当セルとしています。
手順01 空白列を9列作成
手順02 =LEFT(A3,(LEN(A3)-5))→【田中一郎_】を抽出
手順03 =RIGHT(A3,5)→【20/01】を抽出
手順04 =LEFT(C3,2)→【20】を抽出
手順05 手動で【/】を入力
手順06 =RIGHT(C3,2)→【01】を抽出
手順07 =D3+1→【21】を抽出
手順08 =F3+1→【2】を抽出
手順09 =B3&G3&E3&H3→【田中一郎_21/2】に結合
手順10 オートフィルで残りを作成
手順11 元のセルに【値のみ】で貼り付け
手順12 更新作業に使用した9列を削除

とやっています。
他に簡単な方法はありますでしょうか?

https://dotup.org/uploda/dotup.org1652776.jpg
添付画像が小さい為外部アップローダーをお借りしています。

・名前と年齢/在籍年数は一つのセルにしないといけない
・テキストデータとして出力(印刷)する為、元のデータと同じ状態にしないといけない
という縛りがあります。

Excelは2007で、マクロの経験はありません。
(マクロについて無知ですが、これが自動で出来るなら将来はマクロを覚えたいです

FIND関数やMID関数も調べてみましたが、上手く行かなかったです。
アドバイスの程、よろしくお願いします。

A3,C32,手順,抽出,B3&amp,A35,A2 FIND

閲覧数:
64
回答数:
4

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

2018/9/2706:25:29

差し替えるのは後ろの5文字部分だけですよね。

=replace(A3, find("_",A3)+1, 5, left(right(A3,5),2)+1&"/"&text(right(A3,2)+1,"00"))

年齢一桁には配慮しません。年齢や勤続年数の3桁以上も想定外です。

これで手順09まで完了なので、手順10からどうぞ。

差し替えるのは後ろの5文字部分だけですよね。

=replace(A3,...

  • 質問者

    a1a********さん

    2018/9/2715:52:41

    ご回答ありがとうございます。
    他の回答者様のも含め、色々な方法があるんですね。
    数式を理解するのに苦労しますが勉強したいと思います。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

Chiquilinさん

2018/9/2706:52:35

> 他に簡単な方法はありますでしょうか?
別セルに入れたものを「&」で繋ぐのが最も単純な解決方法
だとは思います。1セルに複数の情報を入れるほど無駄なデー
タ管理はないので。

=LEFT(A3,LEN(A3)-5)&REPLACE(REPLACE(RIGHT(A3,5),3,1,".")+1.01,3,1,"/")

さっさと見直すことをお勧めします。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

maronさん

2018/9/2705:34:57

1)B2=IF(A2="","",LEFT(A2,FIND(" ",A2))&LEFT(RIGHT(A2,5),2)+1&TEXT(RIGHT(A2,2)+1,"!/00"))
2)下にコピー
3)B2:B10のように範囲を指定して、コピー
4)リボンの「ホーム」タブの「貼り付け」ボタンをクリックして、
5)「値」にして、貼り付けします

1)B2=IF(A2="","",LEFT(A2,FIND("...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

a_h********さん

2018/9/2701:06:03

>他に簡単な方法はありますでしょうか?
名前_年齢/在籍年数
を一つのセルに入力している時点で大間違い。
一般的には
名前、年齢、在籍年数
を別々の列のセルに入れ、計算結果で得た値を表示させたいセルに結合表示。
そうすれば、計算は簡単。

職場では、ファイルを開いただけで、当日日付を元に年齢、勤続年数(年、月)を表示させてます。

>・名前と年齢/在籍年数は一つのセルにしないといけない
> ・テキストデータとして出力(印刷)する為、元のデータと同じ状態にしないといけない
それなら、
セルの値を取得して、計算し、更新後の値を元のセルに戻す
ということをマクロで行えば簡単。
あとは、あなたの勉強次第。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる