- ベストアンサー
エクセル関数 文字の置き換えを教えてください
2件教えてください。 (1)数字-AA を 数字R-AA に置き換えたいのですが。 数字には、0~9のどれがくるか決まっていません。どの数字がきても 数字R-AA にしたい。 (2)数字L数字 を 数字L_数字に置き換えたいのですが。 数字には、0~9のどれがくるか決まっていません。 文字が決まっている場合は、関数 Substitute を使って置き換えられたのですが、上記の数字のように、範囲のある文字の置き換えが思いつきません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
NO2です。 >分かりにくい質問でした。 ⇒入力データ条件が説明不足です。 一例です。(因みに文字列は全て半角としています。) (1)のケース =IF(COUNTIF(A1,"*-AA*"),IF(ISNUMBER(MID(A1,FIND("-AA",A1)-1,1)*1),SUBSTITUTE(A1,"-AA","R-AA"),A1)) (2)のケース =IF(COUNTIF(A1,"*L*"),IF(ISNUMBER(SUBSTITUTE(MID(A1,FIND("L",A1)-1,3),"L","")*1),SUBSTITUTE(A1,"L","L_"),A1),A1)
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
一般化した表現にしたいのだろうが、質問ではその必要はない。 回答の類推で、自分のケースの解決策が判ればよいはず。 まず読者に質問内容を理解してもらうのが先決。 その場合具体例(複数個、5例ぐらい)を添えるのが一番。 数字などとせず、123-AAと書いて、桁数が問題になりそうな場合では、123は2桁もあるとか書くのがよかろう。 123-AAを123R-AAに変えるなら-AAをR-AAに変えれば(置換すれば)仕舞いではないのか。 そういう意味ではないのか?しっかり質問には書いて。 >文字が決まっている場合は ということは、AAがセルごとに別の文字列なのか。それなら、そのように注記すること。 その場合((1)の場合で)でも-をR-に置換するのはどうか
お礼
返事が遅くなりすみません。 回答ありがとうございます。 分かりにくい質問でした。 例をあげます。 (1)数字-AA を 数字R-AA に置き換えたいのですが。 数字には、0~9のどれがくるか決まっていません。 どの数字がきても 数字R-AA にしたい。 0-AA → 0R-AA 1-AA → 1R-AA 2-AA → 2R-AA 3-AA → 3R-AA | | 次のようには「-AA」の前がアルファベットや「/」など 数字以外の場合は 変換しない。 STEP-AA → STEP-AA BAG-AA → BAG-AA | | ※良い方法ではないと思いますが、条件の1つ、1つをIF文を使って置き換えることなら 出来るようになったのでやってみます。 他の方法が浮かびませんので。 (2)数字L数字 を 数字L_数字に置き換えたいのですが。 数字には、0~9のどれがくるか決まっていません。 Lの前後が共に数字の場合のみ変換する。 例) 0L0 → 0L_0 0L1 → 0L_1 0L2 → 0L_2 | | | | 2L0 → 2L_0 2L1 → 2L_1 2L2 → 2L_2 | | | | 3L0 → 3L_0 3L1 → 3L_1 3L2 → 3L_2 | | | | | | | | 9L7 → 9L_7 9L8 → 9L_8 9L9 → 9L_7 次のようには「L」の前後がアルファベットや「/」など 数字以外の場合は 変換しない。 EXCEL3 → EXCEL3 1LOVE → 1LOVE 1LONLY → 1LONLY ALL9 → ALL9 | | | |
- mu2011
- ベストアンサー率38% (1910/4994)
>文字が決まっている場合は、関数 Substituteを使って置き換えられた ⇒他に条件がなければ、「-」や「L」で確定出来ると思いますが如何でしょうか。 一度、SUBSTITUTE関数でお試し下さい。
お礼
返事が遅くなりすみません。 回答ありがとうございます。 分かりにくい質問でした。 例をNo.3のimogasiさんへの「この回答へのお礼」に記入しました。 (2)の方法が分かりません。 よろしければ教えてください。
- Siegrune
- ベストアンサー率35% (316/895)
Substituteをご存知なら、 (1)数字-AA を 数字R-AA は、-AAをR-AAに、もしくは、-をR-に (2)数字L数字 を 数字L_数字 は、LをL_に置き換えるようにすればいいと思いますが。 置き換えるに当たり上記以外の場合はそのままにしたいとか、 条件があるのでその対策が思いつかないということですか? (でしたら条件を補足願います。)
お礼
返事が遅くなりすみません。 回答ありがとうございます。 分かりにくい質問でした。 例をNo.3のimogasiさんへの「この回答へのお礼」に記入しました。 (2)の方法が分かりません。 よろしければ教えてください。
お礼
ありがとうございました。完璧でした。 関数の種類を知らないことが改めて分かりました。 関数の知識を増やしていきます。