• ベストアンサー

Excelでセル内の数字だけ取り出したい。

1セル内に最大40文字程度の半角英数カナが混在しています。 例:1234abcdアイウ3456efghijk これが数千行あるのですが、集計のため数字にしたく、 しかも数字連続と次の数字連続の間にスペースを入れたいです。 例:1234 3456 かなり調べましたが、関数では数字を取り出すだけでも40文字は不可能のように思います。 マクロで置き換えを連続させて文字を消すのは思いつくのですが、 今少しスマートな方法はありますでしょうか?

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

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

VBAの一例です。 仮にA列にデータがある事で数字に上書きしますので元データは他シートにサーブして下さい。 対象シートのタブ上で右クリック→コードの表示→以下のコードを貼り付け→F5キー押下 Sub sample() Set RE = CreateObject("VBScript.RegExp") With RE .Pattern = "[A-zア-ンア-ン]+" .IgnoreCase = True .Global = True For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Cells(i, 1) = Trim(.Replace(Cells(i, 1), " ")) Next End With End Sub

seki_nsslc
質問者

お礼

完璧でした。 ありがとうございます。

その他の回答 (5)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.3です! たびたびごめんなさい。 投稿した後、気づきました。 >数字連続と次の数字連続の間にスペースを入れたいです・・・ の部分を見逃していました。 前回の投稿は無視してください。 どうも失礼しました。m(_ _)m

seki_nsslc
質問者

お礼

ご丁寧にどうも(^^)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.5

ALT+F11でVBE画面を出し 標準モジュールを挿入し 下記をコピー貼り付ける public function getnums(byval a as variant) as variant  dim i, res  for i = 1 to len(a)   if isnumeric(mid(a, i, 1)) then    res = res & mid(a, i, 1)   else    res = res & " "   end if  next i  getnums = application.trim(res) end function A1セルに「1234abcdアイウ3456efghijk」のようにあるとすると, =getnums(A1) のようにする。

seki_nsslc
質問者

お礼

ご丁寧にありがとうございました。 とりあえずNo2の方のマクロが簡単で採用させていただきました。

回答No.4

#1です。計算速度改良版、C1セルに =IF(B$1="","",IF(B$1>LEN(A1),TRIM(C1),IF(ISNUMBER(MID(A1,B$1,1)*1),C1&MID(A1,B$1,1),C1&" "))) 文字数分検査すればよいですからね。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! すでに回答は出ていますので、参考程度で・・・ A列のデータをB列に表示するようにしてみました。 データは1行目(A1セル)からあるとします。 Sub test() Dim i, k As Long Dim str, buf As String Application.ScreenUpdating = False For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To Len(Cells(i, 1)) str = Mid(Cells(i, 1), k, 1) If str Like "[0-9]" Then buf = buf & str End If Next k Cells(i, 2) = buf buf = "" Next i Columns(2).AutoFit Application.ScreenUpdating = True End Sub ※ 一文字ずる舐めるように検索していますので、若干時間がかかるかもしれません。 参考になれば良いのですが・・・m(_ _)m

seki_nsslc
質問者

お礼

ありがとうございました。 とりあえずNo2の方ので一発でした。

回答No.1

>例:1234 3456 も計算に向いていないと思うのですが良いのでしょうか? また、数字は最大何か所ちりばめられているのでしょうか? とりあえず、プログラム的な数式の方法で、 A1セルに対象の文字列 ツール-オプション [レ]反復計算 反復回数 100 C1セルに =IF(B$1="","",IF(B$1>=100,TRIM(C1), IF(ISNUMBER(MID(A1,B$1,1)*1),C1&MID(A1,B$1,1),C1&" "))) 下へオートフィル B1セルに トリガー =B1+1

seki_nsslc
質問者

お礼

すみません、循環と出てしまいました…

関連するQ&A

  • セルの中の文字判定の方法

    指定したセルの中のテキスト(英数時・記号・カナが混在)をチェックし、 (1)英文字と数字が全て半角であるかどうか と、 (2)カタカナが全て半角であるかどうか あるいは 全て全角であるかどうか をチェックしたいです。 検索結果 「英数は全て半角です。カナは全て半角です。」 と 「英数は全て半角です。カナは全て全角です。」 はOKで、 それ以外 「英数に全角/半角が混在しています。」 「カナに全角/半角が混在しています。」 の場合はエラーとわかるようにテキスト或いはセルの色を変えたいのです。 過去記事の探し方が悪いのか、同様の事例が見つけられません。 アドバイスをお願いできますでしょうか?

  • エクセル上で英数のみを半角するにはどうしたらいいでしょうか?

    エクセル上で、英数のみを全角から半角にするソフトはあるでしょうか? 英数・カナ・記号・スペースまで一括に半角にするものや、英数でも日本文の中の英数1文字は半角にしないものなどは見つけることができたのですが、英数だけをすべて半角にするものは見つけられません。 何かいいものがありましたら教えてください。

  • Excelでセルに入っている数字又は文字のうしろに決められた数のスペースを入れるようにするには?

    エクセルでセルに入っている数字又は文字のうしろに決められた数のスペースを入れるようにすることって出来ますか? 例えば、 A1セルに 123456 という数字が入っていた場合 123456 の後ろに半角スペースを6コつけて 「123456_ _ _ _ _ _ 」 いう風に。 B1セルに 山田太郎 という文字が入っていた場合 山田太郎のあとに全角スペースを5コ入れて 「山田太郎_ _ _ _ _ 」 セルの数字を入力すると半角又は全角スペースを決められている数だけ自動で入力されるようにしたいのですが 何かいい方法はないでしょうか? accessでマクロ使ったほうが簡単かもしれないんですが、accessあまり分からないので・・。 説明がわかりにくくて申し訳ないんですがよろしくお願いします!!

  • EXCEL 関数

    全角カナ文字を半角英数に変換したい。 例えば、<キタノ>⇒<kitano>。全角カナ文字を半角カナ文字に変換するのではなく、半角英数に変換したいのです。宜しくお願いします。

  • Excelで全角数字と半角数字の混在について

     Excelについて、以下のように全角数字と半角数字が混在しているワークシートがあるので、全部を半角数字に置き換えることは出来ないでしょうか? EZ123 123 486 このように文字列としての数字・数値としての数字が混在しています。これらを全て半角数字にしたいのですが。あくまでも、見栄えの問題ですので、特に、計算等の必要はありません。  よろしくお願いします。

  • ノートPCでかな入力。数字キーで漢数字にうまく変換されません

    知人から聞かれた質問です。 OSはMeでPanasonicのノートPCを購入しました。 Office XPですので、IME2002が搭載されています。彼女はかな入力方法です。 数字を入力する時、CapsLockを押しても、全角英数モードにならず、半角英数モードになってしまいます。 数字を入力すると、ディザがつくので、スペースキーを押し、変換候補を一覧させたいのですが、空白になってしまい漢数字や全角/半角数字の選択ができないそうです。 マウスで全角英数モードに切り替えるのは面倒なので、キーボードからの操作で簡単にできるようにするにはどうすればいいのでしょうか? よろしくお願いします。

  • エクセル セルの文字揃え

    エクセルで書類作りをしているのですが、セルで文字の列が揃いません。 数行に左揃えで全角文字を入力、途中に英数記号を混ぜて入力して、途中にスペースを作り、再度文字を入力するとその頭だしが不揃いになります。 半角スペースで調整しても僅かですが揃いません。 スペース後の頭だしを綺麗に揃える方法がありましたら教えてください。 例 ああああああ   ああああ いいいいいい   いいいい うううううう    うううう←こんな感じです(半角より幅がピッチが狭い感じです)

  • エクセルについて

    エクセルで半角英数字と半角カナが混在したセルの半角カナのみ全角に変換したいのですが可能でしょうか。英数字は半角を維持したいです。 =JIS()でやるとどうもアルファベットや数字まで全角になってしまうようで…

  • Excelのセルの数字のみを別のシートのセルに転写

    Excelのセルの先頭に固定した桁数(例として7桁)の半角数字と文字数はフリーの全角の文字を入力し、別のシートのセルに固定した桁数(例として7桁)の半角数字だけを転写する方法を教えてください。

  • エクセルの一つのセル内にある文字と数字を分けて表示したいのですが、

    エクセルの一つのセル内にある文字と数字を分けて表示したいのですが、 似たような質問でトライするもののうまくいきません。 教えてください。 日本 太郎123 日本 一郎・花子1065 1)苗字と名前の間には半角スペースがある。 2)名前の後ろに続けて半角数字(3桁か4桁) 3)連名の場合の「・」は半角表示

専門家に質問してみよう