- 締切済み
Excel 文字の抽出がしたい。
Excelで文字の抽出がしたいです。 ひとつのセルに下記の文章があったとして、 「吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当けんとうがつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。」 この「何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。」だけを抽出したいとき、どういう関数を書いたらいいでしょうか? 最初の句点までであれば、rightとfindでいけると思うのですが、最後の句点の文章のみ欲しいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
ANo.2の回答の式は「右から数えて2番目に現れる『。』の次の位置から、右側にある文字列」を抽出しています。 文章の最後の『。』が右から1番目、「つかぬ」と「何でも」の間にある『。』が右から2番目、として動作しています。 ですので、最後の末尾の『。』が無い場合は「右から数えて1番目に現れる『。』の次の位置から、右側にある文字列」を抽出しないといけません。 末尾に「。」が有っても無くても同じ動作をするようにするには =RIGHT(A1,LEN(A1)-FIND("●",SUBSTITUTE(A1,"。","●",LEN(A1)-(RIGHT(A1,1)="。")-LEN(SUBSTITUTE(A1,"。",""))))) と変更して下さい。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
=RIGHT(A1,LEN(A1)-FIND("●",SUBSTITUTE(A1,"。","●",LEN(A1)-1-LEN(SUBSTITUTE(A1,"。",""))))) 元の文字列に「●」が含まれて居ない事が条件です。元の文字列に「●」が含まれる可能性がある場合は、「●」を「●以外の出現しない文字」に変えて下さい。
- NuboChan
- ベストアンサー率47% (785/1650)
「文字列の最後にある句読点で囲まれた文字列を求める」 問われていませんが 関数で考えるのが苦手なのでマクロでの回答です Option Explicit Sub test() Dim str As String Dim K_End As Long Dim K_Start As Long Dim length As Long Dim result As String str = Range("A1").Value K_End = InStrRev(str, "。") K_Start = InStrRev(str, "。", K_End -1) length = K_End - K_Start result = Mid(str, K_Start + 1, length) Range("B1").Value = result End Sub