[[20190828162202]] 『エクセル 文字の中から漢字のみ抽出』(MIMI) ページの最後に飛ぶ

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

 

『エクセル 文字の中から漢字のみ抽出』(MIMI)

エクセルの文字の中から 漢字のみ抽出する関数を教えて下さい。

例)

元データ:山田(ABCDEFG※/)太郎


抽出後:山田太郎

抽出するのは漢字のみで、英語・数字・記号を除外します。

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


回答ではなく気になったのですが
 泉ピン子 さん
 西川のりお さん
みたいに、「ひらがな」や「カタカナ」が混ざった場合はどうするんでしょうか?

(もこな2) 2019/08/28(水) 17:01


(もなこ2様)
そうですね、、名前にひらがな、カタカナの人がいるケースもありますよね。
今いなかったので 考えがおよびませんでした。
漢字、ひらがな、カタカナのみ抽出する事が可能なのでしょうか。
むずかしければ 漢字のみで・・。
(MIMI) 2019/08/28(水) 17:37

 もこな2さんの指摘もありますので、漢字とはなにか・・があいまいですね

 ユーザー定義関数を作ってみました
 一応 chr(1)からchr(128) までと、その全角文字を消していますが

 これだけだと※が残りますので、個別に削除しています

 削除したい文字が出てきたら随時myDelLetterに追加してください

 Function mykanji(myR As Variant) As String

    Dim i As Long
    Dim myStr As String
    Const myDelLetter As String = "※" '随時追加

    myStr = myR.Value

    For i = 1 To 128
        myStr = Replace(myStr, Chr(i), "")
        myStr = Replace(myStr, StrConv(Chr(i), vbWide), "")
    Next

    For i = 1 To Len(myDelLetter)
        myStr = Replace(myStr, Mid(myDelLetter, i, 1), "")
    Next

    mykanji = myStr

 End Function

(渡辺ひかる) 2019/08/28(水) 17:47


 UDF
 使用例
 =JPLonly(A1)

 Function JPLOnly(ByVal txt As String) As String
     Static RegX As Object
     If RegX Is Nothing Then Set RegX = CreateObject("VBScript.RegExp")
     With RegX
         .Global = True
         .Pattern = "([^亜-龠あ-んァ-ヶ])"
         JPLOnly = .Replace(txt, "")
     End With
 End Function
(seiya) 2019/08/28(水) 17:56

皆様 ありがとうございます。
VBA初心者なのですが 関数では難しいでしょうか??
(MIMI) 2019/08/28(水) 18:09

 抽出文字列が文中に点在している場合は関数では難しいと思いますよ?
(seiya) 2019/08/28(水) 18:11

ありがとうございます。

ちなみに、 セル中にある文字で かっこから、かっこの間の文字のみ削除するような
計算式はありませんか?

例えば、 山田太郎(ヤマダタロウ)様
変更後  山田太郎様  
(MIMI) 2019/08/29(木) 08:55


 =IFERROR(LEFT(A1,FIND("(",A1)-1)&REPLACE(A1,1,FIND(")",A1),""),A1)
 ではどうか?
(ねむねむ) 2019/08/29(木) 09:15

 それなら、数式もVBAも不要

 置換で
 検索する文字列 に "(*)"  <---"は不要、スペースがあることを表現しているだけ。
 置換する文字列 を 空白のままで全て置換
(seiya) 2019/08/29(木) 09:41

コメント返信:

[ 一覧(最新更新順) ]


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