[[20060712165702]] 『数字だけ』(もち)  ページの最後に飛ぶ

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

 

『数字だけ』(もち)

 例えば
■山梨県山梨市8-1-5の8-1-5だけ取り出す方法
■2つのセルを合体させる方法または、1つのセルを2つにする方法
A1@ 
鹿児島県鹿児島市
A2A
1-1-1
A1@+A
鹿児島県鹿児島市1-1-1

 のような感じです

 こんな感じであってますでしょうか?
 
	[A]
[1]	鹿児島県鹿児島市1-1-1
[2]	鹿児島県鹿児島市
[3]	1-1-1
[4]	鹿児島県鹿児島市1-1-1
 
 A1 に、住所を入力
 A2 =LEFT(A1,SMALL(IF(ISNUMBER(--MID(A1,ROW(INDIRECT("a1:a"&LEN(A1))),1)),ROW(INDIRECT("a1:a"&LEN(A1))),""),ROW(A1))-1)
  ↑配列数式
   上記数式を入力、またはコピペ後 Ctrl + Shift + Enter で確定
   { 数式 }となればOK。
 A3 =SUBSTITUTE(A1,A2,)
 A4 =A2&A3
 (キリキ)(〃⌒o⌒)b


 大変処理の重い数式ですが、下の表で、B1に

 =IF(COUNT(-MID(A1,ROW($1:$30),1))=0,"",
 REPLACE(LEFT(A1,MATCH(1,MID(A1,ROW($1:$30),1)*0)),1,
 MATCH(0,MID(A1,ROW($1:$30),1)*0,)-1,))

 として、Enterの代わりにCtrl+Shift+Enter。これを下にフィルドラッグ。
 というものですが、どうでしょう?                    

    A              B
 1 山梨県山梨市8-1-50ABC  8-1-50
 2 山梨県山梨市八〇−一−五〇	

 また、文字列を合体させるものは、=C1&D1のようにします。        (LOOKUP)

 考えている間にLOOKUPさんのコメントが、、。一応、キリキさんの表で、
 A2 =LEFT(A1,MIN(IF(ISERROR(FIND(ROW(A$1:A$9),A1&"1")),"",FIND(ROW(A$1:A$9),A1&"1")))-1)
 配列数式です。

 LOOKUPさんのご提示を見て、数字が全角の場合を考慮した数式にしてみました。
 A2 =LEFT(A1,MIN(IF(ISERROR(FIND(ROW(A$1:A$9),ASC(A1)&"1")),"",FIND(ROW(A$1:A$9),ASC(A1)&"1")))-1)
 配列数式です。 7/12 18:15 追記
(純丸)(o^-')b

 山梨県山梨市8-1-5の8-1-5だけ取り出す方法

 =RIGHT(A1,LOOKUP(10,LEFT(RIGHT(A1,COLUMN(1:1)))*1,COLUMN(1:1)))

 by しげちゃん

 UDF
 B1:C1 =StrTxt(A1)
 Ctrl + Shift + Enter で確定

 Function StrTxt(txt As String)
 Dim a(1 To 2) As String
 With createObejct("VBScript.RegExp")
    .Pattern = "\d+.?$"
    a(1) = .replace(txt,"")
    a(2) = Replace(txt,a(1),"")
 End With
 StrTxt = a
 (seiya)

 σ(^-^;)も正規表現にチャレンジしました。
Alt + F11を押して挿入から標準モジュールを選択。
出てきた画面に下記コードを貼り付けて、その画面を閉じる。
=ricecake(A1) といった塩梅で式を確定します。
(ROUGE)
'----
Function ricecake(txt As String) As String
    txt = StrConv(txt, vbNarrow)
    With CreateObject("VBScript.RegExp")
        .Pattern = "\d+(-\d+)*"
        If .Test(txt) Then
            ricecake = .Execute(txt)(0)
        Else
            ricecake = ""
        End If
    End With
End Function

 ROUGEさん、
 実は私も最初は "\d+(-\d+)*"にしたのですがそれだと、
 港区赤坂1-1-1 ABCビル34F
 の時、1-1-1だけ引っ張ってきますよね?
 質問の内容は、勝手な判断ですが、1-1-1 ABCビル34F かな?、とおもいまして...
 (seiya)

 そうですねぇ...
 でも、σ(^-^;)のメタ文字の理解が進んできたということで良しとしましょうT_T
 (ROUGE)

みなさん有難うございます。
現在試している最中です。
うまくいったらご連絡します

 ◆表題の「数字だけ」ではないですが
 	[A]
 [1]	鹿児島県鹿児島市1-1-1
 [2]	鹿児島県鹿児島市

 A2=LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A1)&1234567890))-1)
 (Maron)

できました!たくさんのお答えありがとうございました!
知識が全くないので、内容まで把握できていませんが、
もっと勉強したいと思います。
ありがとうございました。

おてる


 ??
 サルベージ?
 (とおりすがり)

 こちらのスレ主です。
 書き込みスレを勘違いしてるようです。
[[20080705141145]]『セル内の漢字と数字を分けたい』(おてる) 

コメント返信:

[ 一覧(最新更新順) ]


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