• 締切済み

Excel住所に4桁以上の数字が含まれるセルを抽出

お世話になります。 住所が入ったセルが並んでおり、番地などに4桁以上の数字が含まれている箇所を抜き出したいんですが、よい解決方法はないでしょうか? 数字だけが入ったセルならできるんですが、文字列が含まれるとスキル不足で叶いません・・・。 恐れ入りますが、ご教示いただけますとありがたいです。

みんなの回答

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.4

とりあえず 10個くらい例を提示してみてはいかがでしょう。 全角半角などどんなデータなのかよく分かりません。 具体的に説明しないと 具体的な回答は付けづらいです。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問文を、もう少し丁寧に((予想される)場合などに例示して言及)書かないと答えが正確に出せないと思う。 例えば数字が、全角か半角か、など。 ーー 質問者は、エクセルの関数や操作で答えの出るやり方を希望しているの だろうが、関数ではむつかしいと思う。 操作の方法でも「検索」操作で、条件を、表現できる・指定できるかどうか。 ーー 下記はVBAの処理だが、質問者に回答しても、役立たないかもしれないが、 「スモールなフリーソフトをWEBで探した」と思って、やってみたらどうか。 そいう意図で書いています。 ーー 「正規表現」は、文字列を対象にした検索や置換を考える場合の、世界標準の考えであるようです。 VBScriptの中で使えてRegExpという機能の中で使えます。 多分下記のコピぺーー>実行で使えると思う。 ==>うまく行かない場合は、無視してあきらめてください。 パターンの作り方は、勉強・経験を積まないと、つくりにくいですが。 本質問の件は、易しい方かなと思って、やってみました。 === 回答のVBAの使い方は シートの画面を出しておいて ALTキー+F11キー(2つを同時押しする)と、標準モジュールの画面になるので 下記コードのtest04の行からEnd Subの行までコピーして、標準モジュールの画面に 貼り付けて、F5キーを押す(実行する意味)。 ただし条件があり (1)関係シートは2つあり、データはSheet1、結果はSheet2としているが 用意する必要がある。Sheet1には住所データが、毎行入っていること。 質問者の場合に合わせて、コピー貼り付けしたコード内の、シート名に当たる 箇所をを下記コードコピー後の上で修正してください。 ーーー '参考 パターンについて http://www.megasoft.co.jp/mifes/seiki/ など Sub test04() Set sh1 = Worksheets("Sheet1") '原データのシート Set sh2 = Worksheets("Sheet2") '白紙のシートを用意 k = 2 'Sheet2への書き出し開始行番号 '--正規表現を使う Dim RegEXP As Object Dim mc As Object Dim m As Object Set RegEXP = CreateObject("VBScript.RegExp") '---探すパターンを定義 'RegEXP.Pattern = "(\d+)" '4桁連続半角数字の場合のパターン RegEXP.Pattern = "[0-9]+" '4桁連続全角数字の場合のパターン   -は半角のこと RegEXP.Global = True '--- lr = sh1.Range("A100000").End(xlUp).Row 'A列最下行の行番号を探索 MsgBox "確認:A列データ最終行=" & lr '---該当をSheet2のA,B列に吐き出し For i = 1 To lr s = Cells(i, "A") 'A列のi 行目の文字列を対象にして Set mc = RegEXP.Execute(s) ' MsgBox mc.Count For Each m In mc sh2.Cells(k, "A") = i '存在したSheet1の行番号 sh2.Cells(k, "B") = "'" & m.Value 'submatches(0) k = k + 1 Next Next i End Sub 例データ Sheet1のA1:A15 大阪市北区123 大阪市北区1243 大阪市北区柴田町125-3456-77 大阪市北区126 東京都千代田区4番町 銚子市神社町11-2345 町田市緑町45789-1 大阪市北123 大阪市北区1243 大阪市北区柴田町125-3456-77 大阪市北区126 東京都千代田区4番町 銚子市神社町11-2345 町田市緑町45789-7 町田市緑町45789-2 -- 実行結果 Sheet2 A1:B12 該当行 内容 6 11 8 123 9 1243 10 3456 11 126 12 4 13 11 13 2345 14 45789 14 7 15 45789

全文を見る
すると、全ての回答が全文表示されます。
  • HohoPapa
  • ベストアンサー率65% (454/692)
回答No.2

>番地などに4桁以上の数字が含まれている箇所を抜き出したい 4桁以上の数字が含まれているかどうかを調べ、 その結果(含む/含まない)を適当なセルに表示するのではなく、 4桁以上の数字の羅列部分を適当なセルに取り出すんですね? 数字とは、半角の0~9ですね? 例えば 山川村1234番地森ビル5F67890号 といった場合、 どのような結果を期待していますか? VBAは扱えますか?

全文を見る
すると、全ての回答が全文表示されます。
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.1

》 住所が入ったセルが並んでおり、 》 番地などに4桁以上の数字が含まれている… どういう「住所」か、 その「セル」がどういう風に「並んでお」るのか、 どんな姿で「4桁以上の数字が含まれている」のか、 「番地など」ということは「番地以外にも」あり得るのか、 等々が一目で判るように、具体例を幾つかを行列番号入りで示してくださいナ!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 数字の桁ごとに、各セルに抽出

    最大11桁の数字を各セルに抽出したい。 金額をF列に入力すると、 D列には下3桁が表示され、 C列には右から6桁~4桁、 B列には右から9桁~7桁、 A列には右から11桁~10桁と、 表示されるように、関数を組みたいです。

  • 住所などの中から漢数字だけを抽出したい

    漢数字変換について、以前質問させていただいたものです。 あれから発展して、住所文字列の中から漢数字の文字列だけを抽出したいのです。 今のところ、悩んでいる点は ”千葉県”→ ”千” ”四日市”→ ”四” など、漢数字が含まれた住所に際してです。 どんなときに、どうやって抽出すればよいのか・・・ ”~丁目””~番地”などの、”丁目”や”番地”の前に漢数字があったら、抽出する・・・なんても考えたのですが、丁目や番地だけには限りませんからねぇ。 何かアイディアありましたら、教えてください!!

  • セル内からの数字の抽出

    複数のセルがあり、そのセルそれぞれに、 「(文字列A)(数字1) (文字列B)(数字2)」 と入力してあります。(文字列A)と(文字列B)は、定型文字列なので、複数のセルがありますが、同じ文字列が入っています。 一方で、(数字1)(数字2)は、それぞれのセルによって、異なった数字が入っています。 ただし、セルによっては、(文字列A)(数字1)は、入力していないものもあります。 このようなセルが複数ある中から、(数字1)だけを抽出して、セル内に「(数字1)」だけの列を作りたいのですが、何かよい方法はないでしょうか?よろしくお願いします。

  • Excel2000で住所録を作っていますが上手く出来ません。

    Excel2000で住所録を作っていて 例えば、 日本橋1-1-1 日本橋1-1-2 日本橋1-1-3 となっているのを番地だけにしたくて 置換で一括で「日本橋」を取ると 2001/1/1 2001/1/2 2001/1/3 となってしまいます。 置換をする前に書式設定で表示形式を文字列にするのですが 置換えると日付になり、それを文字列にすると 33333などの5ケタの数字になります。 一つ一つ「日本橋」を取れば日付にはならないのですが面倒なので、 何か良い方法があれば教えて頂けますか?

  • エクセルシートのセルに3桁と4桁の数字を・・

    エクセルシートのセルに3桁と4桁の数字を入れたいのですが、 000とか、 001 とか、 0850 などです。 現在、 0とか 1 とか 850 になっています。 おそらく、数字情報のデータになっていると思います。 それぞれ、0で始まる3桁、4桁の文字列にしたいのですが、 よろしくお願いします。行数は30000行ほどあります。

  • エクセルでセルに入っている数字と数字を|でつなぎ一つのセルに

    横に並びあう複数のセルに文字列で5桁の数字が入っています。 これらを"|"をつかってつなげ、一つのセルに入れたいのですが、 いい方法はないでしょうか。 ▼最終形がこのようになり、一つのセルに入れたいのです。 20432|20433|20434 どうぞよろしくお願いいたします。

  • エクセルのセル内から数字だけを抽出する方法を教えて下さい

    エクセルのセル内から数字だけを抽出する方法を教えて下さい あるデータの列(備考欄)には様々な文字が入っていて、 その中に●名(●は数字)が入っています その数字だけを取り出して 別の列に移す関数を教えて下さい ※この列には他の数字は入っていません、最大で2ケタです よろしくお願いします

  • 1つのセルに入力する半角数字の数

    1つのセルに 20桁のの数字を入力したいのですが、15文字以上になると入力できません、 1.23457E+18 と表示されます。 これを、20桁の文字列でなく半角数字で入力したいのですが方法はありませんか。

  • 1つのセルの中にある2桁数字を入れ替える。

    どなたかご存じでしたら回答をよろしくお願いします。 【質問】  下記の【例】の様にエクセルの1つのセルのに2桁の数字が入っているとします。  2桁目と1桁目の数字を入れ替える方法が知りたいです。 【例】  (1)  3 → 30 :”03”を入れ替えて”30”となる。  (2) 10 → 01:”10”を入れ替えて”01”となる。  (3) 33 → 33:”33”を入れ替えて”33”となる。  (4) 43 → 34:”43”を入れ替えて”34”となる。 【注意事項】   ・2桁の数字は、1~43迄です。   ・使用するエクセルは2010です。 以上、よろしくお願いします。

  • Excel2000のセル内の文字列の数字の先の2桁を取り出す方法について

    年のいった初心者です。 以前の質問に対する回答有難うございます。また、教えてください。  エクセル2000です。セル内に数字の文字列で、4桁、6桁、8桁のものが有ります。4桁のものには"01"を、6桁のものには"60"を、表示し、8桁のものには数種類あり、8桁の場合は、各文字列で上位の2桁を表示したいのです。 =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=8,?????? 4桁、6桁については以前に教えていただいた、関数等でいけたのですが、8桁のときが分かりません。困っています。お願いします。     A列    B列 1 7532 →→ 01 2 280573 →→ 60 3 34964821 →→ 34 4 06839775 →→ 06 5 67500023 →→ 67

専門家に質問してみよう