• ベストアンサー

エクセル関数を使ってこんな事できますか?

どなたかご存知の方がいらっしゃったら教えてください。 各セルに、下記の様なテキストが入力してあったとします。 A        B  C  D 山 川 海 太陽 川  海  山 太陽 Aの中から、B、Cに入力されているテキストを削除してDに表示 させることってできるのでしょうか? その場合、Dにはどんな数式を入れたらよいのでしょうか? 知っている方、よろしくお願いいたします。

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

  • ベストアンサー
  • suekun
  • ベストアンサー率25% (369/1454)
回答No.1

=SUBSTITUTE(SUBSTITUTE(A1,B1,""),C1,"") こんな感じかな? スペースが邪魔ならTRIMを一つ先頭に入れましょう。

shimuchin
質問者

お礼

suekunさま 回答ありがとうございました。 早速試したら……上手くいきました。助かりました! またよろしくお願いいたします。

その他の回答 (2)

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

REPLACE関数を使ってみた =REPLACE(REPLACE(A1,FIND(B1,A1),LEN(B1)+1,""),FIND(C1,REPLACE(A1,FIND(B1,A1),LEN(B1)+1,"")),LEN(C1)+1,"") 質問の2文字か3文字(語句)が(常識的な式の長さ・ネスト)から限度でしょう。 それ以上はVBAで処理となる。 ーー #1のご回答と似ているが、少し違うのを挙げてみる。 最右の「太陽」に当たる語句の処理にTrimが必要だが 原理的には語句+1スペースを単位にして、空白に置換でしょうから。 SUBSTITUTEでも =TRIM(SUBSTITUTE(SUBSTITUTE(A1&" ",B1&" ",""),C1&" ","")) というのもある。

shimuchin
質問者

お礼

imogasiさま ご回答いただきましてありがとうございました。 テキストなんですが、実際はすごく長いのがあったりして 試したのですが思うようにできませんでした。 VBAに関しても、知識不足から対応できず。 これに懲りずに、またよろしくお願いいたします。

回答No.2

  =LEFT(A1,FIND(B1,A1)-1)&RIGHT(A1,LEN(A1)-(LEN(B1)+FIND(B1,A1)-1)) Cの文字の位置を探し、その前後を繋いでます Cは1文字でなくても2文字、3文字でもOK  

shimuchin
質問者

お礼

l4330さま ご回答いただきましてありがとうございます。 試したのですが、いまいちうまくいかず……。 関数の知識がイマイチのため、せっかく回答いただいたのに 活用する術がわかりませんでした。 これにこりず、またよろしくお願いいたします。