- ベストアンサー
区切り位置について教えてください。
お世話になっております。 エクセル上のA列に下記のような文字列があったとします。 A 1 00001-black-free 2 00002-white-black-L 3 ・ 4 ・ 5 ・ 上記は品番・カラー・サイズという並びなのですが、カラーの部分に上記「white-black」のように間にハイフンが入った物が存在するとします。 これを区切り位置でハイフンで区切りをつけると下記のようになります。 A B C D 1 00001 black free 2 00002 white black L 3 ・ ・ ・ ・ 4 ・ ・ ・ ・ 5 ・ ・ ・ ・ これを本当は下記の形式にしたいのです。 A B C D 1 00001 black free 2 00002 white-black L 3 ・ ・ ・ 4 ・ ・ ・ 5 ・ ・ ・ 何か方法がございましたらお教え頂けますでしょうか。 何卒よろしくお願い申し上げます。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
[回答番号:No.5]に示したセル D1 の式はそのままでも構わないけど、次のように変更しておきます。 D1: =SUBSTITUTE(A1,B1&"-"&C1&"-","")
A B C D 1 00001-black-free 00001 black free 2 00002-white-black-L 00002 white-black L 3 00003-red-yellow-blue-M 00003 red-yellow-blue M 4 00004-green-orange-purple-S 00004 green-orange-purple S 5 B1: =LEFT(A1,FIND("-",A1)-1) C1: =LEFT(SUBSTITUTE(MID(A1,FIND("-",A1)+1,99),"-","_",LEN(MID(A1,FIND("-",A1)+1,99))-LEN(SUBSTITUTE(MID(A1,FIND("-",A1)+1,99),"-",""))),FIND("_",SUBSTITUTE(MID(A1,FIND("-",A1)+1,99),"-","_",LEN(MID(A1,FIND("-",A1)+1,99))-LEN(SUBSTITUTE(MID(A1,FIND("-",A1)+1,99),"-",""))))-1) D1: =SUBSTITUTE(A1,LEFT(A1,FIND("-",A1)-1)&"-"&C1&"-","")
- cistronezk
- ベストアンサー率38% (120/309)
分割後の結合条件がイマイチ明確ではありませんが、 ・ハイフンは2個か3個のどちらか ・区切り位置で分割したとき、データが4列目もある場合は2列目と3列目を結合する という前提ならば、区切り位置で分割した後、 E1:=A1 F1:=IF(ISBLANK($D1),B1,B1&"-"&C1) G1:=IF(ISBLANK($D1),C1,D1) とし、E1:G1をコピーしてE2以下にペーストしてはどうでしょう。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに回答は出ていますが・・・ 無理矢理関数の回答を持ってきました。 商品の中の「-」は最大3個という前提での回答です。 ↓の画像のように作業用の列を使います。 F2セルに =SUBSTITUTE(SUBSTITUTE(A2,"-","%",1),"-","#",2) としてオートフィルで下へコピーします。 B列だけは元データを参照し、 B2セルに =LEFT(A2,FIND("-",A2)-1) C2セルには =IF(ISERROR(FIND("#",F2)),MID(F2,FIND("%",F2)+1,FIND("-",F2)-FIND("%",F2)-1),MID(F2,FIND("%",F2)+1,FIND("#",F2)-FIND("%",F2)-1)) D2セルには =IF(ISERROR(FIND("#",F2)),MID(F2,FIND("-",F2)+1,10),MID(F2,FIND("#",F2)+1,10)) という数式を入れ、B2~D2セルを範囲指定し、オートフィルでコピーすると 画像のような感じになります。 尚、エラー処理はしていません。 しかし、他の方の回答の方がスマートみたいですね! 以上、参考になれば幸いですが、 手間がかかりすぎるみたいなので、こんな方法もある! というくらいの感じで目を通してみてくださいね。m(__)m
- f272
- ベストアンサー率46% (8477/18147)
00002-white-black-L これを 00002 white black-L ではなくて 00002 white-black L と分けることはどうやったら分かるの? (1)white-blackだけが特別? (2)一番左の-と一番右の-で分ける? (3)その他?