[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『文字列から、特定の文字を抜き出す』(aki)
こんばんわ。宜しくお願いします。
以下のような文字列があります。
りんご 1りんご 1もも2すいか 1メロン2ミカン3パイン 1ナシ2パイナップル3グレープフルーツ4キウイ
この文字列を、各々
りんご 1りんご 1もも 2すいか 1メロン 2ミカン 3パイン 1ナシ 2パイナップル 3グレープフルーツ 4キウイ とセルに各々分けたいのです。
1行目 =IF(LEFT(A2)<>"1",A2,LEFT(A2,FIND("2",A2)-1)) 2行目 =IF(LEFT(A3)<>"1",A3,LEFT(A3,FIND("1",A3)-1)) 3行目 =IF(LEFT(A4)<>"1",A4,LEFT(A4,FIND("1",A4)-1)) =SUBSTITUTE(A4,B4,"") と何とかなったのですが、 4行目から 2ミカン3パイン 2パイナップル3グレープフルーツ4キウイ になってしまい、上手くいきません。 どなたかご教示頂けないでしょうか。 宜しくお願いします。
< 使用 Excel:Excel2007、使用 OS:Windows7 > 2015/07/11 1:42 aki
(1) 2 を ,2 に置換するといった処理を何回か行って
1りんご 1もも,2すいか 1メロン,2ミカン,3パイン 1ナシ,2パイナップル,3グレープフルーツ,4キウイ
に修正します。
(2) 次に、カンマを指定した「データ区切り」(データ のリボンにあります)の 処理を使って、右方向のセルに展開すればどうでしょうか。
もっと気が利いた方法があるかもしれませんが、 考えているうちに実行したほうが早いかも。
(γ) 2015/07/11(土) 06:54
数値は1、2、3、…と1刻みの昇順である物とする。
A 1 りんご 2 1りんご 3 1もも2すいか 4 1メロン2ミカン3パイン 5 1ナシ2パイナップル3グレープフルーツ4キウイ
というレイアウトだとしてB1セルに
=IFERROR(LEFT(A1,FIND("2",A1)-1),A1) と入力して下へコピー、C1セルに
=IFERROR(REPLACE(LEFT($A1,FIND(COLUMN(C1),$A1)-1),1,SUM(LEN($B1:B1)),""),REPLACE($A1,1,SUM(LEN($B1:B1)),"")) と入力してShiftキーとCtrlキーを押しながらEnterキーで式を確定(確定後、式が{}で囲まれればOK) 右及び下へフィルコピー、でどうか? (ねむねむ) 2015/07/11(土) 08:44
追記 レイアウトが異なる場合も「COLUMN(C1)」の部分はC列を指定する様にしてくれ。 (ねむねむ) 2015/07/11(土) 08:52
同じことだけど。。。
B1 =LEFT(A1,FIND(2,A1&2)-1) 下にコピー
C1 =REPLACE(LEFT($A1,FIND(COLUMN(C1),$A1&COLUMN(C1))-1),1,SUMPRODUCT(LEN($B1:B1)),"")
C1も通常通りEnterのみで確定し、右と下にコピー 一つの式でやるなら(前提:元データの右隣の列から表示)
B1 =REPLACE(LEFT($A1,FIND(COLUMN(B1),$A1&COLUMN(B1))-1),1,SUMPRODUCT(LEN($A1:A1))-LEN($A1),"")
右と下にコピー
元データや式を入れる列がどこであっても、COLUMNの引数をいじらないように。 (笑) 2015/07/12(日) 08:32
配列数式なしで。
B1 =IF(AND(LEFT($A1)<>"1",COLUMN(A1)=1),$A1,MID(REPLACE($A1,FIND(COLUMN(B1),$A1&COLUMN(B1)),1000,),FIND(COLUMN(A1),$A1&COLUMN(A1)),1000))
範囲コピー。
※連番、昇順 前提。 ※文字列数 1000は保険。 (GobGob) 2015/07/14(火) 09:42
γさま なるほどです。次回プログラムを作成する際には、記号を混ぜるようにします。
ねむねむさま 完璧にできました。ありがとうございます。 数式については、ゆっくり解析したいと思います。
笑さま 完璧にできました。ありがとうございます。 いろいろな考え方があるんですね。
GobGobさま 完璧にできました。ありがとうございます。 ※連番、昇順 前提・・・全く問題ありません。前提通りです。 ※文字列数 1000は保険。・・・全く問題ありません。1,000文字は行きませんので。
皆様貴重な時間を有難うございました。
(aki) 2015/07/15(水) 21:28
ご教示頂きたく、まいりました。宜しくお願いします。 数字ではなく、文字になっても可能でしょうか
りんご Aりんご AももBすいか AメロンBミカンCパイン AナシBパイナップルCグレープフルーツDキウイ
宜しくお願いします。
(aki) 2015/08/19(水) 01:13
半角のABC順で、最大「Z」まで。
A1に元の文字列
B1 =REPLACE(LEFT($A1,FIND(CHAR(65+COLUMN(A1)),$A1&CHAR(65+COLUMN(A1)))-1),1,SUMPRODUCT(LEN($A1:A1))-LEN($A1),"")
右と下にフィルコピー
元の文字列がA列でなくても、COLUMN(A1) を変更してはいけないことは 前回と同じ。 (笑) 2015/08/19(水) 06:35
CHAR関数 初めて知りました。 ばっちりです。いろいろなきごうが使えるんですね。 大変勉強になりました。 今後とも宜しくお願いします。 (aki) 2015/08/21(金) 22:33
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.