[[20050822110310]] 『数字と文字をわけたい』(9in10) ページの最後に飛ぶ

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

 

『数字と文字をわけたい』(9in10)

住所録を作っているのですが、番地とビル名が下記のようにつなげて入力されています。

1丁目8-34住友生命ビル

2丁目9-15上野ビル2F

4丁目9-12下川ビル1F

これらをB1に番地、C1にビル名と分ける方法はありますでしょうか?
Excel2000、 WindowsXP です。

宜しくお願い致します。


 人間ならどこで区切るかひと目でわかりますが、エクセルには
 わかりません。規則性がないと数式にはしづらいです。
 一応、「-」の後ろの数字で区切るとすると下記のようになります。
 但し、「-」がないとか2つ以上あるとエラーになります。
 B1セル =LEFT(A1,FIND(LOOKUP(10^17,--MID(A1,FIND("-",A1)+1,ROW($A$1:$A$1000))),A1)+LEN(LOOKUP(10^17,--MID(A1,FIND("-",A1)+1,ROW($A$1:$A$1000))))-1)
 C1セル =RIGHT(A1,LEN(A1)-LEN(B1))
 もっとすっきりした数式がありそう。
(純丸)(o^-')b

 純丸さんのおっしゃるとおり、何らかの規則性がないと難しいのです。
 一般的には、住所とビル名の間に空白があるなどというのが多いのですが、
 そういった場合は比較的容易に分割できることが多いのです。

 ここではそのような規則性がないので、
 1.ビル名以外に使われている数字以外の文字は「丁目」と「-」のみである。
 2.「-」はビル名の中に含まれないこと。
  (「住友生命ビル4F-23号室」 のような使い方はされていない)
 以上を条件に考えてみました。

 B1=SUBSTITUTE(A1,C1,"")
 C1=RIGHT(A1,LEN(A1)-COUNTIF(A1,"*丁目*")*2-COUNTIF(A1,("*-*"))
   -SUM(ISNUMBER(LEFT(SUBSTITUTE(SUBSTITUTE(A1,"丁目",""),"-",""),ROW($A$1:$A$20))*1)*1))

 なお、C1は配列数式ですので、Ctrl+Shft+Enterで確定してください。
 (sato)

 時間が出来たので、チョット突っ込み〜♪

 純丸さんの数式は、番地に同じ数字があったり、「-」が二つあるとエラーに。
 satoさんの数式は、「-」が二つあるとエラーに。

 そこで、二人の数式をヒントにσ(^o^;)も考えてみました。

          A                     B           C
 1 1丁目8-34住友生命ビル	1丁目8-34    住友生命ビル
 2 2丁目9-9上野ビル2F	2丁目9-9     上野ビル2F
 3 4-9-12下川ビル1F 	4-9-12       下川ビル1F

 B1 =SUBSTITUTE(A1,C1,"")
 C1 =IF(A1="","",MID(A1,MAX((MID(A1,ROW($A$1:$A$20),1)="-")*ROW($A$2:$A$21))
+LEN(LOOKUP(99^9,--MID(A1,MAX((MID(A1,ROW($A$1:$A$20),1)="-")*ROW($A$2:$A$21)),
ROW($A$1:$A$20)))),LEN(A1)))
 ↑配列数式です。

 ※条件は、satoさんと一緒です。 
 (キリキ)(〃⌒o⌒)b

 キリキさん、ご指摘ありがとうございます。気がつきませんでした。
 一応、「-」が二つ以上あってもいいように修正してみました。
 まさか、「丁目」が二つあるなんてことは無いでしょうね(笑)
 (sato)

 C1=RIGHT(A1,LEN(SUBSTITUTE(A1,"-",""))-COUNTIF(A1,"*丁目*")*2
   -SUM(ISNUMBER(LEFT(SUBSTITUTE(SUBSTITUTE(A1,"丁目",""),"-",""),ROW($A$1:$A$20))*1)*1))

 ビル名が全角なら
 C1=MID(A1,MAX((LENB(MID(A1,ROW(OFFSET(A$1,,,FIND("ビル",A1)-1,1)),1))<2)*
 ROW(OFFSET(A$1,,,FIND("ビル",A1)-1,1)))+1,31)
 でどうでしょう?
 ビルの前に出てくる最終半角文字位置を計算しています。

                          kym  (^^)_v


皆様、早速のご回答ありがとうございます。見事に解決致しました! 
(9in10)

コメント返信:

[ 一覧(最新更新順) ]


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