- ベストアンサー
複数の文字を一つの言葉に置き換える
エクセルで特定の複数の文字を隣のセルで統一した文字に置き換えたいのですがどうすればいいですか。 たとえば、片方のセルに「北」「南」「東」「西」のいずれかの文字を入力すると隣のセルにはすべて「方角」という言葉に置き換えられる、としたいのです。ちなみに、substitute関数は、一つの言葉だけを置き換えることができることはわかりました。また、マクロは全くの素人でわかりません。 教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! セル内には「東・西・南・北」が一文字ずつではなく、他の文字も入っていて、 上記4文字だけを「方角」に置き換えたいというコトですよね? (1)関数を使わない場合は「置換」操作を4度行う! (2)関数で行う場合はSUBSTITUTE関数のネストではどうでしょうか? 仮にA1セルのデータをB1セルに表示させる場合は =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"東","方角"),"西","方角"),"南","方角"),"北","方角") といった具合です。 ※ 当方使用のExcel2003では7つまでネストできたと思います。 他に良い方法があればごめんなさいね。m(_ _)m
その他の回答 (2)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.2さんのSUBSTITUTE関数の他には、SUM(COUNTIF{配列})という式で書くこともできます。ワイルドカードが使えます。 =if(sum(countif(a1,{"*東*","*西*","*南*","*北*"})),"方角","") あるいは =if(sum(countif(a1,{"*東*","*西*","*南*","*北*"})),"方角",) とした上で、「0」のみ非表示とするユーザー定義書式「G/標準;-G/標準;」を設定 なおワイルドカード「*」が不要な場合は、全て削除しても差し支えありません。
お礼
ありがとうございました。大変参考になりました。この関数でもできました。本来ならMarcoRossiItalyさんにもベストアンサーを差し上げたいのですが、どの方もわかりやすい回答でしたので、早い順ということでお許しください。しかしながら、同じことなのにいろいろなやり方があるなんてエクセルも深いですね。
=IF(4-LEN(SUBSTITUTE("北南東西",A1,"")),"方角","")
お礼
ありがとうございました。この関数でもばっちりです。mike gさんにもベストアンサーを差し上げたかったのですが、早い順番ということですいません。 IF関数でも可能なんですね。ひとつ勉強になりました。
お礼
ありがとうございました。ばっちりできました。 即答してくださり感謝します。返事が遅くなりすいませんでした。 しかしながら、当方、関数の意味が全く理解できていないので、そのままコピペさせていただきます。 申し訳ない・・・・