• ベストアンサー

エクセル関数 文字の置き換えを教えてください

2件教えてください。 (1)数字-AA を 数字R-AA に置き換えたいのですが。   数字には、0~9のどれがくるか決まっていません。どの数字がきても 数字R-AA にしたい。  (2)数字L数字 を 数字L_数字に置き換えたいのですが。   数字には、0~9のどれがくるか決まっていません。 文字が決まっている場合は、関数 Substitute を使って置き換えられたのですが、上記の数字のように、範囲のある文字の置き換えが思いつきません。

  • H45eA
  • お礼率100% (12/12)

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.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)

H45eA
質問者

お礼

ありがとうございました。完璧でした。 関数の種類を知らないことが改めて分かりました。 関数の知識を増やしていきます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

一般化した表現にしたいのだろうが、質問ではその必要はない。 回答の類推で、自分のケースの解決策が判ればよいはず。 まず読者に質問内容を理解してもらうのが先決。 その場合具体例(複数個、5例ぐらい)を添えるのが一番。 数字などとせず、123-AAと書いて、桁数が問題になりそうな場合では、123は2桁もあるとか書くのがよかろう。 123-AAを123R-AAに変えるなら-AAをR-AAに変えれば(置換すれば)仕舞いではないのか。 そういう意味ではないのか?しっかり質問には書いて。 >文字が決まっている場合は ということは、AAがセルごとに別の文字列なのか。それなら、そのように注記すること。 その場合((1)の場合で)でも-をR-に置換するのはどうか

H45eA
質問者

お礼

返事が遅くなりすみません。 回答ありがとうございます。 分かりにくい質問でした。 例をあげます。 (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)
回答No.2

>文字が決まっている場合は、関数 Substituteを使って置き換えられた  ⇒他に条件がなければ、「-」や「L」で確定出来ると思いますが如何でしょうか。   一度、SUBSTITUTE関数でお試し下さい。   

H45eA
質問者

お礼

返事が遅くなりすみません。 回答ありがとうございます。 分かりにくい質問でした。 例をNo.3のimogasiさんへの「この回答へのお礼」に記入しました。 (2)の方法が分かりません。 よろしければ教えてください。

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.1

Substituteをご存知なら、 (1)数字-AA を 数字R-AA は、-AAをR-AAに、もしくは、-をR-に (2)数字L数字 を 数字L_数字 は、LをL_に置き換えるようにすればいいと思いますが。 置き換えるに当たり上記以外の場合はそのままにしたいとか、 条件があるのでその対策が思いつかないということですか? (でしたら条件を補足願います。)

H45eA
質問者

お礼

返事が遅くなりすみません。 回答ありがとうございます。 分かりにくい質問でした。 例をNo.3のimogasiさんへの「この回答へのお礼」に記入しました。 (2)の方法が分かりません。 よろしければ教えてください。

関連するQ&A

  • excel関数・ 式の一部の置き換え

    お世話になります。 例えば、ブック内の複数のシートのG列の4より大きい数を数えようと思って、タテにずらっと=count if(シート名!G:G,>4)という式を入れます。 そして、今度GをIに変えたい(それらのシートのI列の4より大きい数字がいくつあるか数えたい)という場合、ひとつひとつ計算式のGをIに変えなくても変えられる関数はあるでしょうか? いろいろ調べ、substitute関数が近い気がしましたが、計算式の一部の置き換えではなく、文字の置き換えのときに使う関数のようですね?

  • エクセルの文字の置き換えについて

    A列に入っている文字列を数字に置き換える関数を教えてください。 ただし、「いちご」なら1 だけではなく、 「いちご」なら1、「メロン」なら2、「すいか」なら3・・・ と条件式をいくつか入れた方法が知りたいのです。 もし、IFやSUBSTITUTEを使うのであれば 条件式が1つしか入れられないので条件式をいくつか入れる方法 もしくは条件式を組み合わせる方法を教えてください。

  • エクセルで文字の置き換え(自動)

    エクセルでリストを作成しています。 リストは常に追加をしている状態です。 そこで、Aのシートを入力用とし、Bのシートを印刷用としたいです。 そこでやりたいことですが Aのシートに入力された文字列をBのシートの文字列で自動的に変換させたいです。ルールは以下の通り R→右 L→左 S→直 D→割1 E→割2 F→割3 これが数字と文字の組み合わせでAシートのA列に入力されます 例1R1L2S3→1右1左2直3のようにしたいです 置き換えをしてもいいと思いますが、リストが随時追加されますので、出来れば自動でできればと思います。 まだ、自分ではVBAやマクロは組めません。関数などでできる方法があれば教えてください

  • エクセル2010 で 置き換え

    画像の、水色の段だけを、 ーは|に、 |はーに、置換したいです。 また、この図ではこの二種類だけですが、 他の図になると3ペアの置き換えや4ペアの置き換えが出てくることもあります。 これを、セルごとに行うのではなく、一気に変換できるようにしたいです。 マクロは全く使ったことがありませんので、マクロ使わず、関数(?)だけでやりたいです。 V LOOKUP や IFや SUBSTITUTEなどを見つけはしたのですが、 どれが使いやすいのかが判断つかず、 使い方もなかなか理解できませんでした。 エクセル不慣れなので、分かりやすい説明をしてくださる方お願いします。 または分かりやすいサイトなどを教えてください。

  • Excelの置き換え機能について質問です

    Excelの置き換え機能について、 例えば「AA」という文字は「ABA」に、 「BB」という文字は「BCB」にという風に、 数百通りの置き換えパターンがある場合、 ひとつずつ置き換える方法は分かるのですが、 一気にこの数百通りの置き換えが出来る方法はあるでしょうか。 「AA」という文字は「ABA」にという数百通りの一覧は ExcelでA列とB列に作成しています。 説明が悪く申し訳ありませんが、宜しくお願い致します。

  • エクセル2000での置き換え

    '0016851626 '0079239209 こんな感じのデータがあるのですが このデータの一番最初の文字の'をとってそれぞれ文字列として 0016851626 0079239209 としたいのですがどなたか方法をご存知ないでしょうか? よろしくお願いいたします。 *置換で'を除こうと思いましたがだめでした。 *SUBSTITUTE関数でいったん'を取り除き、その後データをコピーし 形式を選択して貼り付けで値を選択し貼り付けた場合に'がはいってき てしまいます。

  • エクセルの関数

    宜しくお願い致します。 セルの値が 2//0 20//11 200//2 の場合、//の前の数字だけを取り出す方法は無いでしょうか? =SUBSTITUTE()この関数ではうまくいきません

  • エクセル関数について・・教えて頂けますか?

    エクセル関数について質問なのですが、 0O507654のような数字とアルファベットが入っている文字列を 005-0765-4という風に変更したいのですが、 REPLACEやSUBSTITUTE関数を使ってもうまく出来ません。 超初心者で分からない事が多くて申し訳ないのですが、 どの関数を使用し、どのように入力すれば良いのか教えて頂けませんでしょうか? よろしくお願い致します。

  • エクセルでの文字置き換え

    みなさんこんにちは。 質問ですが、編集→置き換えではなく、VBAで同様の 操作をしたいのですが、どの様に記述すればよいのでしょうか? また、マクロの記録を使って、同様の処理をした場合との処理速度の差はあるのでしょうか? 置き換えたい文字が多くある為、編集→置き換えは面倒くさいので・・・

  • エクセルで文字の置き換え

    エクセルで、文字の置き換えの方法についてですが、 A1のセルの値:1-2*大阪 A2のセルの値:日本1-2*神戸 A3のセルの値:1-2*大阪 とした場合、1-2の部分を01-02と書き換えたいと思います。 編集の置き換えで検索する文字を、1-2として置き換え後の文字を01-02とすると、置き換え後の文字が A1のセルの値:01-02 A2のセルの値:日本01-02 A3のセルの値:01-02 となります。何かいい方法ってないでしょうか? 理想の変換後の形は、 A1のセルの値:01-02*大阪 A2のセルの値:日本01-02*神戸 A3のセルの値:01-02*大阪 です。VBAで処理されてもかまいません。 よろしくお願い致します