- 締切済み
セル中の文字列を分割する方法
解決方法をご教授ください。 例として任意のセルに 「ビニールパイプ下地OP塗面φ100」 とあり、前半を全角換算にして10文字、後半を全角換算にして12文字として 分割する方法はあるのでしょうか。 「ビニールパイプ下地OP塗面」と「 φ100~200」 にしたいのに 「ビニールパイプ」と「下地OP塗面φ100」 になってしまいます。 最初、=LEFTと=MIDを利用して分割を試みましたが全角に換算した文字で 分割をしたいのに半角全角合わせての設定しか出来ませんでした。 用途としてエクセルで貰ったデータをCSVに変換して専用ソフトに取り込む 際に取込める文字の制限があるので困っています。 ぜひ、助けてください。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
JIS関数で、全角に統一してカウントではどうなのかな。 ーー A1 ビニールパイプ123OP塗面φ100" (ビニールパイプ123が半角) B1に=JIS(A1) で ビニールパイプ123OP塗面φ100” と全角化。 ーー これに対し >前半を全角換算にして10文字、後半を全角換算にして12文字として MID関数で =MID(D1,1,12) でビニールパイプ123OP となる。 >ビニールパイプ下地OP塗面、は13文字だがどうなっているのかな。 またもとの半角に戻せということは無いですよね。 ーー 間違いがあるとの補足はよんだが 「ビニールパイプ下地OP塗面」のように全行で左の部分が13文字とそろうということは考えにくい。 実例をもう少し挙げないから回答がしにくい。 文章的な文字の中で、何か意味的な特別な語句で切るというのが世の中の多い実情では(従って難しい)。
最近は文字数のカウント方法が、半角全角の区別なく、文字通り文字数になってしまいました。 > 全角換算(半角は2文字で全角1文字とみなす)10文字と これを、半角で20文字と言い換えて良いなら、 LEFTB関数、MIDB関数、RIGHTB関数、LENB関数があります。 > 汎用で使用出来るように これは「区切りたい文字が『φ』だけではないので」 という意味でしょうか? また、文字数で区切ると、変なところで区切られてしまうこともあり得ます。 これは、 > 「ビニールパイプ」と「下地OP塗面φ100」になってしまいます。 と結果的に同義だと思いますが’。。。
- mshr1962
- ベストアンサー率39% (7417/18945)
#1です。UNICODE文字を使っていない条件でなら 前方=LEFTB(A1,24) 後方=RIGHTB(A1,20) または 後方=MIDB(A1,25,20)
- mshr1962
- ベストアンサー率39% (7417/18945)
「φ」の位置を基準で良いなら A1="ビニールパイプ下地OP塗面φ100" B1=LEFT(A1,FIND("φ",A1,1)-1) C1=RIGHT(A1,LEN(A1)-LEN(B1))
お礼
回答ありがとうございます。質問の文面に間違いがありました。 任意の文字列に対応しなくてはなりませんのでφ位置では困ります。 「ビニールパイプ下地OP塗面 φ100」 を 「ビニールパイプ」と「下地OP塗面 φ100」 ではなく 「ビニールパイプ下地OP塗面」と「 φ100」 にしたいわけです。 汎用で使用出来るように 全角換算(半角は2文字で全角1文字とみなす)10文字と 全角換算(半角は2文字で全角1文字とみなす)12文字と 分けたいのです。
補足
カタカナは半角のつもりで記述しました。 分かりにくくて本当に申し訳ありません。