• 締切済み

【エクセル】文字列分割の関数

エクセルで文字列を分割する数式を探しております。 以下のデータを 右から4桁とそれ以外に分割したいのです。 20002  → 2 0002 30003  → 3 0003 40010  → 4 0010 511000 → 51 1000 1019550 →101 9550 1012279 →101 2279 2019220 →201 9220 3338850 →333 8550 たとえばLEFT関数やRIGHT関数ですと、分割というよりも 抽出になってしまい、私の求めているものとは異なってしまいます。 考えが煮詰まってしまい、これ以上進めない状態です。。。 何卒よろしくお願いいたします。

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

数値として2セルにするなら =TRUNC(A1/10000) =MOD(A1,10000) LEFT関数,RIGHT関数を使う場合は =LEFT(A1,LEN(A1)-4)*1 =RIGHT(A1,4)*1 単純にスペースで区切りたいだけなら =LEFT(A1,LEN(A1)-4)&" "&RIGHT(A1,4) または =REPLACE(A1,LEN(A1)-4,1,MID(A1,LEN(A1)-4,1)&" ") 分割する文字列が数値だけなら、下記の方法でも可能 =TEXT(A1*1,"0 0000")

z-3500
質問者

お礼

たくさんのアイデア、ありがとうございます! 感謝します。 勉強になりました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

データをA列として、 B列に=SUBSTITUTE(A1,RIGHT(A1,4),"") C列に=RIGHT(A1,4) で抽出します。 後は、B,C列をコピーし、「形式を選択して貼り付け」で値のみを選択して貼り付けるで如何でしょうか。 期待値と相違していましたら読み捨て下さい。

z-3500
質問者

お礼

なるほど! 右4桁をスペースで置き換えると言うことですか。 これは考えられなかったです。 ありがとうございます!!

  • ukichon
  • ベストアンサー率45% (78/173)
回答No.2

答えになってないかもしれません。 MID関数は検討しましたか? 私は、郵便局が「1060036」となっているものを「106-0036」にしたい場合以下のようにしています。 A1のセルに「1060036」が入っていた場合、 B1のセルに「=MID(A1,1,3)&"-"&MID(A1,4,4)」と入れています。 必ず右側が4桁なのなら、文字数をカウントする関数で全体の文字数を求めそこから4を引いた文字数目までをMID関数で抜き出すとか。 分からなかったら説明します。

z-3500
質問者

お礼

MID関数も検討しましたが、どうもうまく使いこなせないようでして…。 助かりました。ありがとうございます。 >文字数をカウントする関数で全体の文字数を求めそこから4を引いた文字数目までをMID関数で抜き出す とはLEN関数との合わせ技と言うことですかね。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

=LEFT(A1,LEN(A1)-4) & " " & RIGHT(A1,4)

z-3500
質問者

お礼

なるほど、LEN関数ですね。考えてもいませんでした。 ありがとうございます。