[[20161201140300]] 『指定用語から指定文字数を抜き取る関数』(ららら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『指定用語から指定文字数を抜き取る関数』(ららら)

A1を対象として指定用語から指定文字数の文字列(指定用語含む)を抜き取る関数を教えてくだだい。
Findとmidで上手くできませんでした。

< 使用 Excel:Excel2016、使用 OS:Windows7 >


 このようなことだろうか?
       A        B    C      D
 1 ABCDEFGHIJK  C    5    ABHIJK

 A1セルの文字列からB1セルの文字を探しだしそこからC1セルの文字数分抜き取る。

 D1セルに
 =REPLACE(A1,IFERROR(FIND(B1,A1),LEN(A1)+1),C1,"")
 で。

 追記
 =IFERROR(REPLACE(A1,FIND(B1,A1),C1,""),A1)
 これでいいか。
(ねむねむ) 2016/12/01(木) 14:22

ワガママを言わせて頂きます。

A1に「ぶらぶら旅行に滋賀県に行きましょう」とあった場合、
セルではなく関数内で「A1」「県」「2」「4」と指定することで
「滋賀県に行きま」を取り出したいです。

質問が少し拡大してますが、ご教授をお願い致します。
(ららら) 2016/12/01(木) 15:02


 抜き取るというのはそこを消すのではなくそこ以外を消すということか。

 =LEFT(REPLACE(A1,1,FIND("県",A1)-2-1,""),4+3)
 ではどうか?

 2、4の指定がわかりやすいように「-2-1」「4+3」としているのでそこは「-3」「7」でも構わない。

 追記
 もっとわかりやすくすると
 =LEFT(REPLACE(A1,1,FIND("県",A1)-2-1,""),4+2+1)
 か。
(ねむねむ) 2016/12/01(木) 15:10

有り難う御座います!
(ららら) 2016/12/01(木) 22:10

	A	B	C	D	E
1	ぶらぶら旅行に滋賀県に行きましょう				
2					
3	A1	県	2	4	
4					
5	滋賀県に行きま				

 A3にセル
 B3に検索文字
 C3に前シフト数
 D3に後シフト数

 A5 =MID(INDIRECT(A3),FIND(B3,INDIRECT(A3))-C3,LEN(B3)+SUM(C3:D3))
(GobGob) 2016/12/05(月) 09:14

 あー。数式内ね。。。

 =MID(A1,FIND("県",A1)-2,LEN("県")+2+4)
 
(GobGob) 2016/12/05(月) 09:21

 全く見向きもされないでしょうけど、遊びでUDF。

 Function CripText(s As String, ch As String, before As Long, after As Long) As String
    With CreateObject("VBScript.RegExp")
        .Pattern = ".{" & before & "}" & ch & ".{" & after & "}"
        CripText = .Execute(s)(0)
    End With
 End Function

 こんなコードを書いておいて、セル側では

 =CripText(A1,"県",2,4)  といったように使います。

(β) 2016/12/05(月) 09:37


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.