• ベストアンサー

数字部分のみ別のセルに移動したいです。

複数のセルの、数字部分のみ別のセルに移動したいのですが、 教えていただけますでしょうか? 例 セルA aaa1234 bbb5678 ccc9874 ddd5642 ↓ セルA   セルB aaa     1234 bbb     5678 ccc     9874 ddd     5642 このように、文字と数字を分けたいです。 よろしくお願いします。

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

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

こんにちは! 質問通り必ず数値は最後にあり連続しているとします。 ↓の画像で B1セルに =SUBSTITUTE(A1,C1,"") C1セルに =MID(A1,COUNT(MID(A1,ROW($A$1:$A$20),1)*1),20) C1セルは配列数式になりますので、Ctrl+Shift+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → C1セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後の{ }マークが入り配列数式になります。 最後にB1・C1セルを選択 → C1セルのフィルハンドルで下へコピー! これで画像のような感じになります。 (A列が20文字まで対応できる数式です) 尚、数値位置が決まっていない場合はVBAになりますが一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, k As Long, myStr As String, str1 As String, str2 As String For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row For k = 1 To Len(Cells(i, "A")) myStr = Mid(StrConv(Cells(i, "A"), vbNarrow), k, 1) If myStr Like "[0-9]" Then str2 = str2 & myStr Else str1 = str1 & myStr End If Next k Cells(i, "A") = str1 Cells(i, "B") = str2 str1 = "" str2 = "" Next i End Sub 'この行まで ※ 一旦マクロを実行すると元に戻せませんので 別Sheetでマクロを試してください。m(_ _)m

aki12341234
質問者

お礼

ありがとうございます! 数値位置が決まっていなかったため、2つ目の方法で試しましたところ、成功しました。 何時間かかるかわからない作業が一瞬で片付きました。 感動です。誠にありがとうございました。

その他の回答 (2)

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

No.1です。 前回のC1セルの数式は間違っていました。 ↓の数式に変更してください。 今回もC1セルは配列数式です。 =1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($A$1:$A$20),1)),0),COUNT(1*MID(A1,ROW($A$1:$A$20),1))) 前回の数式では数字前の文字数変化に対応できません。 どうも失礼しました。m(_ _)m

  • emaxemax
  • ベストアンサー率35% (43/121)
回答No.2

数字と文字をわけるのではありませんが、ご提示のように左3文字が数字、残りが文字なら =LEFT(A1,3) で、左の3文字を =MID(A1,4,LEN(A1)) で、残りを取得できます。

関連するQ&A

  • 複数セルを結合して一つのセルにしたい

    エクセル関数の質問です。 A列のセルに、数字が並んでいます。 aaaという部分はカテゴリーを示すものです。 B列のセルに同じカテゴリーの別の数値を連結させ、スペースで区切ってひとつのセルに表記させるにはどうすればいいでしょうか? concatenate関数を組み合わせて式を作ろうとしたのですが、うまく出来ませんでした。 VBAやマクロ、ユーザー定義関数になっても構いません。 ご教授ください。 A       B aaa_0001  aaa_0002 aaa_0003 aaa_0002  aaa_0001 aaa_0003 aaa_0003  aaa_0001 aaa_0002 bbb_0012  bbb_0013 bbb_0013  bbb_0012 ccc_0017

  • エクセルの文字処理

    以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD    A   B   C   D  1|    AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は  ・セル内にスペースで区切られない文字列があった場合には、B列に入れる  ・それ以外はスペースで区切って、A列B列C列D列に入れる  ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。

  • EXCELで複数行の検索

    初心者です。 Aファイルのaaa、bbbなどをキーに Bファイルを検索してできるだけ簡単にマクロ等使わずに 下記のような抽出をする方法があれば教えてください。 よろしくお願いします。 Aファイル aaa bbb ccc Bファイル(例えば「ddd」と「あ」は別セルです) ddd あ eee い aaa う fff え bbb お ggg か ccc き 結果 Aファイル aaa う bbb お ccc き

  • 【エクセル】空セルを埋める方法

    お世話になります。 下記のような表があります。 1行目:AAA,BBB,CCC,DDD 2行目:空セル,BBB,CCC,DDD 3行目:空セル,BBB,CCC,DDD 4行目:aaa,BBB,CCC,DDD 5行目:空セル,BBB,CCC,DDD ・・・ こんなパターンの行が結構あります。 空セル部分を下記のように埋めたいのですが 1行目:AAA,BBB,CCC,DDD 2行目:AAA,BBB,CCC,DDD 3行目:AAA,BBB,CCC,DDD 4行目:aaa,BBB,CCC,DDD 5行目:aaa,BBB,CCC,DDD てっとり早く埋める方法ありませんか? いまは、【ctrl+↓】 ⇒【↑】⇒【ctrl+D】を延々繰り返しています。 宜しくお願いいたします。

  • 複数セルから同じ文字列を抽出、並べ替え

    お世話になります。 セル式で定義したいのですが、いい考えが浮かびません。 A列に以下のような文字が並んでいるとします。実際は下に無制限とします。 A1  AAA A2  BBB A3  CCC A4  AAA A5  CCC A6  DDD A7  AAA これらのセル中の文字列から以下のように並べ替えてB列に配置したいのです。 B1  AAA B2  BBB B3  CCC B4  DDD 4種類の文字列となるのでB1:B4まで並べたいと思います。 B列のセルにセル式を記述したいと思います。 以上、ご教授下さい。

  • フォルダ内の画像を、フォルダを開かずに別フォルダに移動したいのですが

    複数のフォルダ内に様々な拡張子の画像があります。 フォルダ名  JPG   GIF   BMP AAA    20個   100個   0個 BBB   120     10    2 CCC  2100      0   30 -------------------------------------------- DDD  2140個 これをDDDフォルダ内にJPGだけまとめたいのですが AAA開いてJPGだけを移動して、BBB開いて、、、、 したくなくて、一括処理でできるフリーソフト (あるいはWindows内のソフト)は あるでしょうか?

  • エクセルVBAでの文字列抽出とセルへの出力

    エクセルVBAで文字列を検索して、検索した文字列を他のセルへ出力する方法を探しております。状況を図で説明すると、 A1セル:aaa\bbb\item1\ddd A2セル:aaa\bbb\ccc\item2\ddd A3セル:aaa\bbb\ccc\ddd\item3\eee このような状態からitemを検索して、B1セルに B1セル:item1 B2セル:item2 B3セル:item3 と表示させたいです。エクセルVBA初心者なものでRegExpを使うのかな、というところまではたどり着きましたが、そこから先にすすめません。 何か良い方法をご存知の方、教えていただきたいです。よろしくお願いいたします。

  • Excel表を集計するプログラム

    A列に複数の項目(重複もあり)があります。B列に数字が入っています。 A列の項目で重複しているものはMergeします。 それと同時にB列に入っていた数字を合計したいと思っています。 [具体例] 処理前  →  処理後 AAA 1     AAA 7 BBB 3     BBB 7 CCC 4     CCC 4 BBB 4     DDD 2 DDD 2 AAA 5 AAA 1 こんな感じの処理をVBAでしたいと思っています。 教えてください。 よろしくお願いいたします。

  • 【少し急いでます】エクセルについて教えてください!

    Excel2000を使っています。 A列に重複するデータがあり、B列に別データがあります(20000行強) 例)     A  B 1  001 aaa 2   001 bbb 3   001 ccc 4   002 aa 5  002 bb 6  003 aaa 7  003 bbb 8  004 ddd 9   004 eee 10  005 aa 11  006 bbb A列で重複する001は3行あり、重複しているデータは1行にまとめてB列のaaa、bbb、cccをつなげたいです。(わかりづらくてすみません) 例)     A      B 1  001  aaa・bbb・ccc 2  002   aa・bb 3  003  aaa・bbb というようにまとめたいです。 どのような方法がありますでしょうか? よろしくお願い致します。

  • Excelの関数に詳しい方、お願いします。

    わかりづらい説明かもしれませんが、よろしくお願いします。 例として、 AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF ・ ・ ・ といった文字列がエクセルの先頭列A1~A100までずらりと並んでいるとします。 各アルファベットには任意の数字(日付など)が入るとして、この並んだ百件のデータからCCCの部分の最大値を表示するための適切な関数があれば教えていただけないでしょうか? 現在少々急いでいるため言葉足らずで申し訳ありませんが、よろしくお願いいたします.

専門家に質問してみよう