• ベストアンサー

エクセルでの置換方法

エクセルにて (例)B2セルで06-52525のように、ハイフン後の数値が5なら06の前にKを挿入し (例)B5セルで06-12345のようにハイフン後の数値が1なら06の前にGを挿入し C列のような結果を得たいと思っています。 置換(挿入)方法をご存知でしたら教えて頂きたく、ご教授お願いします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

IF関数の入れ子構造で処理すれば良いでしょう。 IF関数の論理式はFIND関数でB列の値(文字列)に"-5"があるときはB列の値の先頭に"K"を&演算子で連結すれば目的に合うでしょう。 B列の値に"-5"が無いときは内側のIF関数で"-1"を検索し、有るときは"G"を&演算子でB列の文字の先頭へ連結します。 C2=IF(FIND("-5",B2&"-5")<LEN(B2),"K"&B2,IF(FIND("-1",B2&"-1")<LEN(B2),"G"&B2,B2)) B列の値に"-5"、"-1"の何れも含まれないときはB列の値をC列へ代入すれば良いのですよね? 尚、FIND関数で検索文字列が対象に含まれていないときエラーが発生しますので、それを防止するために検索文字列と同じ文字列をB列の値の右側へ&演算子で連結します。 B列の値に検索文字列が含まれるときはB列の文字列の長さの範囲内の数値が返り、含まれないときはB列の文字列の長さより大きい数値が返りますのでFIND関数の戻り値の値で有無を判断します。

zizi0604
質問者

お礼

詳細に教えて頂きまして、ありがとうございます。

その他の回答 (2)

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

エクセルでは「置換」というのは、別の意味で使います。 意味的には、別のものにするという意味を言いたいのは判るが。 文字列の付加ですね。 むしろ関数でB列の文字列を加工し(したがってB列ではなくて、B列以外の C列などに式を入れることになります。 既出の回答を見てもそういう回答です。 VBAならB列自体のデータを置換して、B列に戻せます。 Excel関数には、SUBSTITUTE 関数。REPLACE関数もあるにはあるが、本件では適当でないのでは。 ーー B列データの、―の最初に現れる桁の隣の桁が5(や6)かを判別したら仕舞のようだ。 ーー B列     C列 06-52255 K06-52255 06-12345 G06-12345 C列C1の式は =IF(MID(A1,FIND("-",A1)+1,1)="5","K" & A1,"G" & A1) 下方向に式を複写(結果C列)

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

C2セルに以下の式を入れ下にドラッグコピー =IF(MID(B2,FIND("-",B2)+1,1)="5","K"&B2,IF(MID(B2,FIND("-",B2)+1,1)="1","G"&B2))

zizi0604
質問者

お礼

ご教授頂きまして、ありがとうございます。非常に助かりました。

関連するQ&A