- 締切済み
【エクセル】文字列分割の関数
エクセルで文字列を分割する数式を探しております。 以下のデータを 右から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関数ですと、分割というよりも 抽出になってしまい、私の求めているものとは異なってしまいます。 考えが煮詰まってしまい、これ以上進めない状態です。。。 何卒よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mshr1962
- ベストアンサー率39% (7417/18945)
数値として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")
- mu2011
- ベストアンサー率38% (1910/4994)
データをA列として、 B列に=SUBSTITUTE(A1,RIGHT(A1,4),"") C列に=RIGHT(A1,4) で抽出します。 後は、B,C列をコピーし、「形式を選択して貼り付け」で値のみを選択して貼り付けるで如何でしょうか。 期待値と相違していましたら読み捨て下さい。
お礼
なるほど! 右4桁をスペースで置き換えると言うことですか。 これは考えられなかったです。 ありがとうございます!!
- ukichon
- ベストアンサー率45% (78/173)
答えになってないかもしれません。 MID関数は検討しましたか? 私は、郵便局が「1060036」となっているものを「106-0036」にしたい場合以下のようにしています。 A1のセルに「1060036」が入っていた場合、 B1のセルに「=MID(A1,1,3)&"-"&MID(A1,4,4)」と入れています。 必ず右側が4桁なのなら、文字数をカウントする関数で全体の文字数を求めそこから4を引いた文字数目までをMID関数で抜き出すとか。 分からなかったら説明します。
お礼
MID関数も検討しましたが、どうもうまく使いこなせないようでして…。 助かりました。ありがとうございます。 >文字数をカウントする関数で全体の文字数を求めそこから4を引いた文字数目までをMID関数で抜き出す とはLEN関数との合わせ技と言うことですかね。
- toshi_2000
- ベストアンサー率30% (306/1002)
=LEFT(A1,LEN(A1)-4) & " " & RIGHT(A1,4)
お礼
なるほど、LEN関数ですね。考えてもいませんでした。 ありがとうございます。
お礼
たくさんのアイデア、ありがとうございます! 感謝します。 勉強になりました。