Excelの関数について質問です。

次の条件を関数を作成してください。

スラッシュで区切られた文字列がエクセルのA1あるとします。その「最後尾」と「最後尾から3つめ」にB1、C1に記入された文字列を置換する関数を作成してください。

例えばA1に「abc/def/ghi/jkl」、B1に「bbb」、C1に「ccc」と文字列が記入されてるとしたら、「abc/bbb/ghi/ccc」となるということです。

以上、よろしくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/06/22 11:35:34
  • 終了:2011/06/22 16:12:20

ベストアンサー

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692011/06/22 12:33:55

ポイント100pt

特定の使われていない文字を使って/の位置を置換して特定する方法です。

ここでは$という文字が使われていなければ次の式で可能です。


=LEFT(A1,FIND("$",SUBSTITUTE(A1,"/","$",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))-2)))&B1&MID(A1,FIND("$",SUBSTITUTE(A1,"/","$",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))-1)),FIND("$",SUBSTITUTE(A1,"/","$",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-FIND("$",SUBSTITUTE(A1,"/","$",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))-1))+1)&C1

id:taroemon

できました。ありがとうございます。

2011/06/22 16:12:09
  • id:taknt
    VBAで関数を作れば簡単
  • id:taknt
    >「最後尾から3つめ」

    1/2/3

    の場合

    bbb/2/ccc

    になればいいということ?
  • id:taroemon
    takntさん
    コメントありがとうございました。
    両方共そのとおりです。またお願いします。
  • id:taknt
    それってちゃんと できますか?ということです。
  • id:SALINGER
    何やら外野がうるさいですが、ポイント送信で補足しておきましたのでご一読ください。
  • id:taknt
    実行すると エラーになりますよね?
    それは 間違いないですか?

  • id:SALINGER
    ほらねw
  • id:taroemon
    SALINGERさん
    ポイント送信受け取りました。
    誠意ある対応ありがとうございます。大変参考になりました。

    takntさん
    ご指摘ありがとうございました。
    またよろしくお願いします。
  • id:taknt
    私はこの質問に対して非常に興味深くみせていただきましたが
    結果的に残念な状態で終了したみたいです。
  • id:taroemon
    takntさん
    再度のコメントありがとうございます。

    takntさんのVBA、Excel関数に関する確かで深い見識は何度も良回答をいただいてるので理解しております。ただ、いただいたご回答は私の環境下で十分に目的にかなってましたので、これはこれで良しとさせていただきました。

    いろいろご意見などもおありでしょうがコメントがずいぶん伸びてしまってることに多少困惑しております。活発な意見交換に水をさすようで申し訳ありませんが、ここは質問者に免じて皆様も書き込みを一旦お控えいただければと思います。

    また質問しますので今後もいろいろ教えてください。なにとぞお願いします。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません