dポイントプレゼントキャンペーン実施中!

いつもお世話になります。

8/1→8/6→9/1
8/1→8/6→9/2→1/1
8/1→8/6→9/3→10/1→10/2
10/1
上記ような文字に入力されています。
最後の日付を抽出したいのですができません。
下記のような関数も考えみたのですがわかりません。

後ろの→がどこにあるかを調べて、→の後ろの文字を切り出す
=FIND("→", B3, len(B3))
Findの開始位置を先頭ではなく後ろにしてみましたがエラーです。
ご教授をお願い致します。

A 回答 (4件)

こんにちは



元の文字列がどこにあるのか不明ですが、B3セルにあるものとして、

=RIGHT(B3,LEN(B3)-IFERROR(FIND(CHAR(27), SUBSTITUTE(B3, "→", CHAR(27), LEN(B3) - LEN(SUBSTITUTE(B3, "→", "")))),0))

ではいかがでしょうか?
    • good
    • 2
この回答へのお礼

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

お礼日時:2022/08/07 11:02

No2です



No3様の考え方の方がよさそうですね。
式を単純化できます。
(元の文字列が、ご提示のような日付と→のみという条件付になりますけれど)

=TRIM(RIGHT(SUBSTITUTE(B3,"→"," "),5))
    • good
    • 0

次のような手順でも、いけそうな気がします。



①"→" を幾つかのスペースに置き換え(SUBSTITUTE)する。
②上記で得られた文字の右から5文字を切り出す。
③上記③で得られた文字をTrimして、前のスペースを除去する。
    • good
    • 0

最後の「→」の位置を特定するのにはこちらの記事が参考になります。



FIND関数で後ろ・右から文字を探して位置を取得する:Excel(エクセル)の関数・数式の使い方/文字列
https://www.relief.jp/docs/excel-find-function-f …

ちょっと難しい感じですよね。
まるまる流用して、必要な部分だけ書き換えて取り込むといいでしょう。
で、作ってみた式がコレ。
私も内容は理解できるけど、この式が必要なときはこの記事からコピペで使ってます。自分で書くには面倒くさい!

で、作ってみた式がこれ。

=IF(ISERROR(FIND("→",B3)),B3,MID(B3,FIND("●", SUBSTITUTE(B3, "→", "●", LEN(B3) - LEN(SUBSTITUTE(B3, "→", ""))))+1,5))

FINDで「→」が見つからない場合は入力値そのまま。
「→」があった場合は、上に書いた記事の式を利用して、最後の「→」から5文字を抽出する。
日付の文字数の最長は「12/12」と5文字ですから。

お試し下さい。
「関数で複数ある→以降の文字の抽出したい」の回答画像1
    • good
    • 1
この回答へのお礼

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

お礼日時:2022/08/07 11:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!