[[20050322201151]] 『漢字を抽出』(ちゃいな) ページの最後に飛ぶ

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

 

『漢字を抽出』(ちゃいな)

いつも勉強させてもらってます。

さっそく質問なのですが、数字やブランクなどが混在したデータから
漢字のみを抽出する方法はありませんでしょうか?

例えば、セルに『00  高田純次 .m』とはいったデータから
『高田純次』を抽出。

よろしくお願いします!


 必ずスペースに挟まれているのでしょうか?
 法則を判別したいので、いくつか例を挙げて下さい。

 123亜456医 789兎0 →亜医兎 
 とか?
  (INA)


(例)

 1234谷川 譲治          .m

 5678 堤淳.m

 1358 金子 和正.m

 という感じなので、必ずデータに挟まれてはいません。
 (ちゃいな)


 ご提示の例題には対応できました。
	 [A]                 	 [B]
 [ 1]	1234谷川 譲治          .m 	谷川 譲治
 [ 2]	5678 堤淳.m             	堤淳
 [ 3]	1358 金子 和正.m          	金子 和正

 B1=TRIM(SUBSTITUTE(SUBSTITUTE(TRIM(A1),".m",""),LOOKUP(10^17,--LEFT(A1,COLUMN(1:1))),""))

 これで良いのか・・・。
 B1=TRIM(SUBSTITUTE(SUBSTITUTE(A1,".m",""),LOOKUP(10^17,--LEFT(A1,COLUMN(1:1))),""))

 (川野鮎太郎)

 漢字・・・うぅ〜〜ん、、どうかな??
標準モジュールに貼り付けてください。
A列データがある場合です。
Option Explicit
Sub てすと()
Dim MyA As Variant
Dim MyStr As String
Dim i As Long, j As Long
With Sheets("Sheet1")
    MyA = .Range("A1", .Range("A65536").End(xlUp)).Value
    ReDim MyAry(1 To UBound(MyA, 1), 1 To 1)
    For i = 1 To UBound(MyA, 1)
    MyStr = MyA(i, 1)
        For j = 1 To Len(MyStr)
            If StrConv(StrConv(Mid(MyA(i, 1), j, 1), vbKatakana), vbWide) = _
                StrConv(Mid(MyStr, j, 1), vbNarrow) Then
                MyAry(i, 1) = MyAry(i, 1) & Trim(Mid(MyStr, j, 1))
            End If
        Next
    Next
    .Range("B1").Resize(UBound(MyA, 1), UBound(MyA, 2)).Value = MyAry
End With
End Sub
(SoulMan)

川野鮎太郎さん、 SoulManさん、ありがとうございました。
どちらの方法でもうまくいきました!

(ちゃいな)


コメント返信:

[ 一覧(最新更新順) ]


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