• 締切済み

一つのセルにある文字列と数値を分ける方法

文字と数字が以下のように一つのセルに混在している場合、これを分けることはできますでしょうか。 ”JPY”は、置き換えでできますが、そのほかの文字は、文字数がばらばらなので、Left,Rightも使えません。 よろしくお願いします。 Loss on Raw 2,463.13 JPY Packaging 43,064.10 JPY Duty 22,291.18 JPY Intrest Rece 1,326.04 JPY Hist. paymen 0.00 JPY Transport 0.00 JPY

みんなの回答

  • mar00
  • ベストアンサー率36% (158/430)
回答No.4

'最後の「 JPY」が固定だと仮定して、 'データがA列でA1から始まっているとしてB列に書き出します。 Sub Macro1() For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For j = 1 To Len(Range("A" & i)) If IsNumeric(Mid(Range("A" & i), j, 1)) = True Then Exit For End If Next j Range("B" & i) = Mid(Range("A" & i), j, Len(Range("A" & i)) - j - 4) Next i End Sub

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

A1からそういうデータがあるとすると B1に =LEFT(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890))-1) 以下コピー。 C1に =IF(B1="","",SUBSTITUTE(LEFT(A1,LEN(A1)-4),B1,"")) として右寄せの配置にして以下コピー または,数字が「必ず小数点の下2桁ある」のが絶対に保証できるなら =IF(B1="","",--SUBSTITUTE(LEFT(A1,LEN(A1)-4),B1,"")) として,セルの書式設定の表示形式で数値の小数点以下2桁を表示する設定にしておいて以下コピー。

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

こんばんは! VBAになってしまいますが・・・ 一例です。 データはA1セルからA列にあるとします。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, k As Long Dim str As String Application.ScreenUpdating = False For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Cells(i, 1).Copy Destination:=Cells(i, 3) For k = 1 To Len(Cells(i, 1)) str = Mid(Cells(i, 1), k, 1) If str Like "[A-z ]" Then Cells(i, 2) = Cells(i, 2) & str With Cells(i, 3) .NumberFormatLocal = "@" .Value = WorksheetFunction.Substitute(Cells(i, 3), str, "") End With End If Next k Next i Columns.AutoFit Application.ScreenUpdating = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

最後の「JPY」は固定なのかな?そうだと仮定したらこんな感じでどうでしょう 対象文字列がA1に入っているとして、 B1に =MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"1234567890")) これが、数字が出てくる最初の位置 C1に =LEFT(A1,B1-1) D1に =MID(A1,B1,LEN(A1)-B1-3)*1 E1に =RIGHT(A1,3) D列はセルの表示書式で「小数点以下2桁」「桁区切り(,)を使用する」と、設定します。

関連するQ&A

  • 《エクセル2000》なぜか文字列になっている半角数字を、一気に数字扱いにするには?

    LEFT関数を使って切り取った半角数字が、文字列扱いになっています。(文字数字混在のセル…つまり文字列であるセルから切り取ったからでしょうか?) セルをダブルクリックし、エンターキーを押すと、こちらもなぜか数字扱いになるのですが(以上一連の作業はISNUMBER関数で確認)、データが数百件あるので、これを一気に行う方法はないでしょうか。 よろしくお願いします。

  • エクセル:文字列+全角数字が入力されたセルの並び替えについて

    どうしたら良いでしょうか。教えてください。千代田区の住所が入力されているセルで、 並び替えをした場合、全角で入力されているせいで、 外神田1-1-1 外神田1-10-1 外神田1-2-1  となってしまいます。 これを 外神田1-1-1 外神田1-2-1 外神田1-10-1 というように、○丁目以降を順に並び替えるにはどうすれば簡単に出来るのでしょうか。全角数字を半角数字にしてもうまくいきません。 文字列と数字を分割させることは出来ますでしょうか? 住所の長さが外神田の場合(3文字)、神田佐久間町の場合(6文字)というように、決まった文字数でないので、LEFTやMIDやRIGHTでセルを別けることが容易にいきません。 ご回答いただければとても助かります。宜しくお願いいたします。

  • エクセル 多数の空白セルに数字の(ゼロ)を一括で入力する方法

    大きな表の一列に数字が入力されているセルと「空白」セルが混在しています。 右隣以降で空白セルと数字セルを計算しようとすると、VALUE#エラーが出ます。 これら多数の「空白セル」に一括して数字「ゼロ」を入力する方法はありますでしょうか。 「ゼロ」にした後は「ゼロ表示」か「ゼロ非表示」は後で選びます。 「検索」→「置き換え」では「文字列」同士でしか置き換えられないですよね? 試してみましたが、駄目でした。

  • excel 文字列から左4桁の数字を抜き出す方法

    こんばんわ。 質問があり投稿致します。 Excel2013を利用しております。 初歩的な質問で申し訳ありません。 セルに 2014年2月分  と文字列が書かれており、先頭4桁を数字として別なセルに貼り付けたいです。 今回の場合なら、別なセルに2014と表示したいです。 文字列としてなら、LEFTやRIGHTの関数で抜き出しが出来そうです。 ただし、数字としては抜き出しが出来ないようでした。 どのような関数を利用したら良いのか、お教え頂けますと幸いです。 宜しくお願い致します。

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

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

  • エクセルの質問です。不定の桁数の、ある文字を表示しない方法

    10~12桁の数字の最後に付く”合計”の文字を削除したいのです。 膨大なデータベースで集計を取り、ジャンプの可視セルでコピーを取りましたが合計の文字だけを取り除きたいのです。置き換えで桁数を統一するのは可能です。leftやreplaceの関数を使ってもできますが、最後の2文字を表示しない方法があるなら教えて下さい。 宜しくお願いします。

  • エクセルで数字、文字列混在のセルから数字のみを抽出し、その合計をスマー

    エクセルで数字、文字列混在のセルから数字のみを抽出し、その合計をスマートに計算する方法を探しています。 現在は他のWEBサイトから数字を抽出する方法が探せたので、それを元に、こんな式を使って計算しています。 =SUM(LOOKUP(10^17,LEFT(L34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(N34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(P34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(R34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(T34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(V34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(X34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(Z34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AB34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AD34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AF34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AH34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AJ34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AL34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AN34,COLUMN(2:2))*1),LOOKUP(10^17,LEFT(AP34,COLUMN(2:2))*1)) このLEFT(xx34,・・・)の部分をまとめてくくれれば式が単純になると思いますが、いい方法が探せません。 もしこれ以外で、スマートになる方法があればそれでも歓迎します。 ちなみにセルに入力されているデータの例としては「150(4年間)」、「2000(6年間)」などです。 この数字だけの部分を足したいのです。 データが膨大になりフォーマットを変えるのは至極大変なので上述のことを考えた次第です。 皆さんのお力でなんとか出来ればと思っています。 よろしくお願いします。

  • セル内の文字列の分割はsearch関数やleft関数を使わずにできないのでしょうか?

    エクセルのA列に桁数が不規則な任意の数字が並んでいて、それぞれの数字には単位を表す"g"か"g/k"がついています。 B列にA列の数字を移し変えたいのですが、その際に、"g"がついているものはそのまま、"g/k"がついているものには70を掛けた後に"g"をくっつけて表記したいです。そこでB1セルに下記のような関数を使いました。 =IF(RIGHT(A1,1)="g",A1,LEFT(A1,SEARCH("g",A1,1)-1)*70&"g") のですが、すごくダラダラしてて長いように感じます。もっと簡単に同様の操作をできないのでしょうか?例えば、文字列と文字列をくっつけるのに&を使うだけですんでしまうように、-を使ったら文字が引き離せるとか、そんな便利な機能はないでしょうか? 過去の質問を検索したところ、search関数とleft関数を用いた回答が一件ヒットしただけで他に見当たらなかったので質問しました。よろしくお願いします。

  • 文字列に含まれる日付を分割

    またも教えてください。 さきほどの質問と似ているのですが、、、申し訳ございません。 ひとつのセルに日付と文字が混在しています。 (他に数字データもあります) ~~~、5/1定休日、5/5定休日 ~~、5/1定休日 ~~~、10/10定休日 ~~には何が入るかわかりません。(数字だったり文字だったり) 「定休日」の文字列は固定です。 これを 5/1  5/5 5/1   10/10 とセルを分けたいのですが、、、。日付の桁数が揃っていないので どうしてもきれいに抽出できません。(涙) お知恵をください。よろしくお願いいたします。

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

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

専門家に質問してみよう