• ベストアンサー

エクセルでの住所表示について

たとえば、A1に東京都港区六本木6-10-1、A2に東京都港区赤坂3とデータが入っています。これをすべてハイフン以降を抜いた丁目までの 表示にしたいと思っています。(「丁目」の表示はいりません) 今は「=MID(A1,1,(SEARCH("-",A1)-1))」という関数を使っていますが、大量のデータにまとめて関数をかけるので、ハイフンのないA2はエラー表示になってしまいます。 そこで、ハイフンのあるものは上の関数の計算をして、ハイフンのない データは元のデータを返すようにしたいのですが、どうしたらいいでしょうか?

  • taspa
  • お礼率44% (13/29)

質問者が選んだベストアンサー

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.8

NO1です。 >でもこれだと、A1=東京都港区六本木6101になってしまいます。 ⇒恐縮です。(ハイフンの全角、半角対応)  =IF(ISERROR(FIND("-",ASC(A1))),A1,LEFT(ASC(A1),FIND("-",ASC(A1))-1))

taspa
質問者

お礼

できました~! 使わせていただきます。 再度対応していただいてありがとうございました。

その他の回答 (8)

noname#140971
noname#140971
回答No.9

失礼:ハイフォンの手前まででしたか・・・。 [イミディエイト] ? CutStr("東京都港区赤坂3", "-", 1) 東京都港区赤坂3 ? CutStr("東京都港区六本木6-10-1", "-", 1) 東京都港区六本木6 Public Function CutStr(ByVal Text As String, _             ByVal Separator As String, _             ByVal N As Integer) As String   Dim strDatas() As String      strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs((N <= UBound(strDatas)))) End Function と、そのような場合は、このようにハイフォンを加えてエラーを回避。 で、 =LEFT(A1,SEARCH("-",A1&"-")-1) No6さんの手法を私も採用。

taspa
質問者

お礼

ありがとうございました。 No8さんを使わせていただきますが、 教えていただいて有難うございました。

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.7

訂正します >SEARCH関数の検査値に「-」があればいいので SEARCH関数の対象文字に「-」があればいいので

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.6

エラー処理としては =IF(COUNTIF(A1,"*-*")<>0,LEFT(A1,SEARCH("-",A1)-1),A1) とか =IF(ISERROR(SEARCH("-",A1)),A1,LEFT(A1,SEARCH("-",A1)-1)) で良いと思いますが 今回の場合「-」がないためエラーとなるので SEARCH関数の検査値に「-」があればいいので =LEFT(A1,SEARCH("-",A1&"-")-1)

noname#140971
noname#140971
回答No.5

補足:番地が半角だと仮定して・・・。 この仮定が常に成り立つ工夫は可能だと思います。 東京都港区六本木116-10-1 もあるでしょうからハイフォンの位置では・・・。 それなら、むしろ数字の開始位置を・・・。 LEN方式以外ですと・・・。

回答No.4

=IF(COUNTIF(A1,"*-*")<>0,(MID(A1,1,(SEARCH("-",A1)-1))),A1) はいかかがでしょう。 ただしハイフンの半角、全角が一致していないとだめですが。

noname#140971
noname#140971
回答No.3

番地が半角だと仮定して・・・。 東京都港区赤坂3 ----+----!----+ <--- 15バイト -------- <--- 8文字 ですから7文字を抽出すればいいですね。 =MID(A1, 1,LENB(A1)-LEN(A1)) で、可能だとおもいます。 Q、データは元のデータを返すようにしたいのですが、どうしたらいいでしょうか? A、割愛。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

IF文で切り分け。 =IF(ISERROR(SEARCH("-",A1)),A1,MID(A1,1,(SEARCH("-",A1)-1))) とか?

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。(ハイフンの全角、半角に対応) =SUBSTITUTE(SUBSTITUTE(A1,"-",""),"-","")

taspa
質問者

補足

有難うございます。 でもこれだと、A1=東京都港区六本木6101になってしまいます。 A1=東京都港区六本木6、A2=東京都港区赤坂3という表示を 1つの関数で出来ないかと思ってるんですが…

関連するQ&A

  • 住所の漢数字変換について

    データベース内の住所のデータなのですが、 以下のような処理を行うことは可能でしょうか? SQL、プログラム等、やり方は問いません。 経験者の方がいましたら教えて頂けないでしょうか? 1.「丁目」と「番」を全角ハイフンにする。また、「号」を削除する。 2.漢数字をアラビア数字にする。 (例) 東京都港区六本木十丁目二十三番七号 ↓ 東京都港区六本木10-23-7

  • 文字の抜き取りについてソースを教えて下さい

    $data1 = "<abcd>東京都港区赤坂六本木1丁目1-1</abcd>"; 上記の様に、$data1に入っているデータから 【東京都港区赤坂六本木1丁目1-1】 の部分のみを抜き取り $data2へ入れたい場合 どのようなソースになりますか? 下記のように記述してみましたが 誤りのようで うまく記述(print)されませんでした。 if ($data1 =~ /<abcd>(\D+)<\/abcd>/){ $data2 = $1; } print "$data2" ; 尚、【】内の文字列は随時変化します。 初心者ですので、ご教授をお願いします。

  • 住所データから番地のみ取り出し○丁目と表示したい

    6,000件ほどの住所データ(エクセル)があります。(一都三県) そこから番地の「丁」部分の数字のみを取り出して「○丁目」と表示させたいのですが、 例外の表示もあり苦戦しております。 住所データの番地部分(数字とハイフン)は全角です。      A                      B (表示させたい) 1 神奈川県横浜市旭区善部町3-2     3丁目 2 埼玉県戸田市下前2-8-18        2丁目 3 神奈川県高座郡寒川町宮山928-1    - 4 神奈川県横浜市青葉区みたけ台21     - いろいろ調べてみてA1やA2の場合は下記の数式で希望の表示ができましたが、 A3やA4の住所もあるため、この場合はハイフン前の「8丁目」と表示されてしまいます。 数式=MID(I4816,FIND("-",I4816)-1,1)&"丁目" また二桁の丁目もあることにも気づき、混乱しております。 1つの作業数式でなくてもかまいませんのでご教授願います。 (WinXP、office2002)

  • EXCELで住所を分割して取り出す方法は?

    ◆EXCEL2000を使用してます。 ◆A1には、以下の住所が入ってます。 都道府県から始まり、ビル名まで。文字数は全角で最大40文字です。 ◆番地とビル名は、全てスペースで区切られています。 ◆例 東京都港区赤坂1丁目23番45号 ABCDEFGビル スペース以下のビル名を、取り出したいのですが、どうしたらいいのでしょうか。 ご回答の程、よろしくお願い致します。

  • 住所の表記方法

    住所の入力データが「港区六本木1-1-1」の場合、縦書き表示にして「港区六本木一の一の一」というふうに、ハイフンを自動で「の」に変更する機能はありますか? ※OKWAVEより補足:「株式会社筆まめの製品・サービス」についての質問です。

  • 住所の番地とそのあとを分割したい

    住所の番地とそのあとを分割したい のです 例えば 「東京都港区赤坂1-2-3メゾン赤坂505」というデータがあった時に メゾン赤坂505のみをセル分割したいのです 番地は算用数字のみです どなたかご存じでしょうか?

  • 住所の番地とそのあとを分割したい

    住所の番地とそのあとを分割したい のです 例えば 「東京都港区赤坂1-2-3メゾン赤坂505」というデータがあった時に メゾン赤坂505のみをセル分割したいのです 番地は算用数字のみです どなたかご存じでしょうか?

  • 東京での最寄の駅

    東京出張があり、下記住所の最寄の駅が知りたいです。よろしくお願いします。 (1)東京都港区赤坂8丁目5番 (2)東京都千代田区平河町2丁目6番

  • スペースで区切った文字列を分割する方法

    ◆EXCEL2002を使用してます。 ◆A1には、以下の住所(都道府県から始まり、ビル名まで)が入ってます。 ◆番地とビル名は、全てスペースで区切られています。 ◆例 東京都港区赤坂1丁目23番45号 ABCDEFGビル ●完成 B1 東京都港区赤坂1丁目23番45号 C1 ABCDEFGビル 上記のように スペースで区切られた文字列を分割する方法を教えてください。 よろしくお願いします。

  • エクセルの関数で1つのセルに入っている住所を丁目までと番地以降に分けたい

    エクセルで1つのセルに東京都○○区○○町○丁目○ー○というように住所が入力されており、これを関数で「東京都○○区○○町○丁目」と「○ー○」に分けたいのですがどうすればよいでしょうか? また東京都××区××町×ー×というように丁目が入らない住所に関しては「東京都××区××町」と「×ー×」に分離したいです。 上記の処理が可能な関数を教えてください。

専門家に質問してみよう