- ベストアンサー
エクセルでの置換方法
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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関数の戻り値の値で有無を判断します。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルでは「置換」というのは、別の意味で使います。 意味的には、別のものにするという意味を言いたいのは判るが。 文字列の付加ですね。 むしろ関数で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)
C2セルに以下の式を入れ下にドラッグコピー =IF(MID(B2,FIND("-",B2)+1,1)="5","K"&B2,IF(MID(B2,FIND("-",B2)+1,1)="1","G"&B2))
お礼
ご教授頂きまして、ありがとうございます。非常に助かりました。
お礼
詳細に教えて頂きまして、ありがとうございます。