[[20150305225740]] 『セルから目的の記号をを抽出する』(かっぱ) ページの最後に飛ぶ

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

 

『セルから目的の記号をを抽出する』(かっぱ)

セル内に一定の法則のもとで記号が表示されているので、その記号のみを抽出する関数を教えてください。

○:たなか^△:すずき^□:佐藤

上記のように3つの項目が^で区切られており、その先頭にある
○△□を1つのセルに抽出したいのです。
^で区切られた項目は2以上の場合や、^記号がない場合もあります。

○:たなか^△:すずき^□:佐藤
△:たなか^▼:すずき
○:たなか
△:すずき^□:佐藤^△:すずき^□:佐藤

導きたい内容
○△□
△▼

△□△□

よろしくお願いします

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


 関数の回答が出そうな気もしますが、つなぎでマクロのユーザ定義関数です。

 標準モジュールに下記をおき、データがA列にあるならB列に
 B1=If(A1="","",ConcatLeft(A1,"^"))
 のような形で。

 Function ConcatLeft(indata As String, delim As String, Optional num As Long = 1)
    Dim w
    For Each w In Split(indata, delim)
        ConcatLeft = ConcatLeft & Left(w, num)
    Next
 End Function

(Mook) 2015/03/06(金) 00:34


 無理やり!!!
 =LEFT(A1,1)&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A1,"^",REPT(" ",100)),":",REPT(" ",100)),200,100))&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A1,"^",REPT(" ",100)),":",REPT(" ",100)),400,100))&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A1,"^",REPT(" ",100)),":",REPT(" ",100)),600,100))&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A1,"^",REPT(" ",100)),":",REPT(" ",100)),800,100))&
TRIM(MID(SUBSTITUTE(SUBSTITUTE(A1,"^",REPT(" ",100)),":",REPT(" ",100)),1000,100))

 とりあえず6記号まで^と:は全角にしてあります。
(稲葉) 2015/03/06(金) 09:08

 よく読んだら変なこと書いてあった

 >^記号がない場合もあります。 
 それ一定の法則じゃない

(稲葉) 2015/03/06(金) 09:09


コメント返信:

[ 一覧(最新更新順) ]


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