• 締切済み

エクセルでセル内の数値の取得(タイトル拝借)

emaxemaxさんの http://okwave.jp/qa/q9671491.html?f=mail_favorite_new に類似した質問をさせていただきます。 添付図を参照ください。 A列の、文字&数字、あるいは、数字&文字からなるテキストをB列に示す数値に変換する数式を教えてください。 特に期待するのは5、11行目の実現です。 その他の行も含めて、マクロを使わずに、条件付き書式を含む上段(あるいは下段)共通の数式を教えてください。

  • msMike
  • お礼率71% (505/710)

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

前の質問でも正規表現という、やり方で回答したので、本問にも目が留まり、やってみた。VBAをやらない人にはむつかしかろうと思うが、読者には、いろいろいると思うので、参考に挙げてみます。 例データ  元データA列。実行結果B列同行。 東京124  124 出雲346  346 ハンナジョウ45123  45123 滋賀456-A 滋賀457-A789   457 313東京  313 ASS325   325 19tokyo東京2000   19 2020東京200回戦   2020 ーーー 標準モジュールに Sub test04() Dim RE Dim myStr As String Dim match, matches Set RE = CreateObject("VBScript.RegExp") With RE .Pattern = "[0-9,.]+" .Global = False endrw = Range("A100000").End(xlUp).Row For i = 1 To endrw x = Cells(i, "A") Set matches = .Execute(x) myStr = "" For Each match In matches myStr = myStr & match.Value Next 'MsgBox myStr Cells(i, "B") = myStr Next i End With Set RE = Nothing End Sub 参考にした記事  http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_cell_suuji.html コード例B

msMike
質問者

お礼

》 VBAをやらない人にはむつかしかろうと思うが… 全く仰るとおりです。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

質問では「文字」となっていて、 「全角文字」、「半角文字」の指定が明確でなく、 「全角数字」は「文字」なのか「数字」かの指定も明確でないので迷いました。 文字は、「全角文字」、「半角文字」両方混在して、 「全角数字」は「文字」としての算式です。 =MID(A2,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A2&1234567890)),LEN(A2)*10-SUM(LEN(SUBSTITUTE(A2,{0,1,2,3,4,5,6,7,8,9},))))

msMike
質問者

お礼

ご回答、ありがとうございました。 B列は文字列でなく、冒頭(左端)の 0 を“表示”させる数値のつもりでした。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

A1セルから数字取得 =MID(A1,MIN(SEARCH({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),LEN(A1)-(LENB(A1)-LEN(A1)))

msMike
質問者

お礼

ご回答、ありがとうございました。 実は、A列の「文字&数字」の「数字」とB列の「数値」には意味の違いを含めたつもりでした。 nishi6さんの式の戻り値は「数値」でなく「文字列」を右揃えにしたものですよね。 数値にするには例えば「*1」を当該式の末尾に付加すればOKですが、その場合に冒頭の 0 を表示させるには書式設定が必要になります。 》 条件付き書式を含む上段(あるいは下段)共通の数式を教えてください。 は無理な注文だったのでしょうか?そうかも知れない、と思い始めましたが… ちなみに、上段の場合の私が考えた文字列を戻り値とする式は下記です。 =MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),99)

msMike
質問者

補足

aokiiさん、 先ほど書いた[お礼コメント]中で貴方様のお名前を間違えて仕舞ったことを深くお詫び申し上げます。

関連するQ&A

  • excelで2行を1行に

    excelで2行の罫線枠中に上段:空白、下段:文字列とか、上段:文字列、下段:文字列のように様々な罫線枠内を1行に結合したいのですが、 ○○┌────┬────┬─────┬── 1行 │(空白)│文字列 │(空白) │ 2行 │ 文字列 │文字列 │ 数式 │ ○○└────┴────┴─────┴── この形式が数段、数シートに渡ってあります。 ○○┌────┬────┬─────┬── 1行 │(空白)│文字列 │(空白) │ ○○│ 文字列 │文字列 │ 数式 │ ○○└────┴────┴─────┴── 上記のように1行に上下に結合したいのですが、こんなことできるのでしょうか。 何卒、ご教授下さい。

  • エクセルで下段だけの削除

    教えて下さい エクセルで作成した表があります 行1 上段 行2 下段 行3 上段 行4 下段 この上段、下段の繰り返しで1000件はあります 下段の行のみを一気に削除をしたいのですが簡単に削除をする方法はありませんか? 全部単なる数字が入っているだけでどこにもセルの結合はありませんしマクロもありません 宜しくお願い致します

  • エクセルで数字が入ったセルの値を抽出

    任意1行中のある1列にFALSEと1列だけ数字が入っています(下図参照)。その数字を抽出する関数があれば教えて下さい。 下図の例では、Fの列にB2:E2の範囲の数字「10」を抽出したいのです。マクロを組めば可能なのですが、セルに入力する関数等で簡単に実現できればと思います。 アドバイス宜しくお願いします。

  • 書式が文字列のセルへ数値をコピーしたい。

    すべてのセルの書式を文字列にした状態で、コピーした数字を 貼り付けると、「数字が文字列として保存されています」の エラーが出ます。 この状態では数式がうまく動作しないようなので、エラーがでない ようにしておきたいのですが、どうしたら良いでしょうか? 頭に0をつけたり、記号が混ざるものもあるので、セルの書式は 文字列のまま解決しなければなりません。 また、「このエラーを無視」すると、とりあえずエラー表示は 消えますが、再度クリックすると再びエラーが出現し、数式も うまく適用できません。 うまくエラーを吐かせずに文字列セルへ数字をコピーできない ものでしょうか? 方法をご存知の方、ご教授願います。

  • 表からの合計

    お世話になります、集計についてお教えください。 上段のような表があります。そしてこれを下段のような数字を合計した表に組み替えたいと思います。 この下段の表の黄色い部分に入れる数式を考えています。 上段の表に合計を示す行と列を挿入すればsumifを活用することで出来るかと思うのですが、できれば上段の表は生データとして触らないようにしたいのです。 また、実際のデータはかなりの行と列の数となっており、構成要素も多岐にわたるので手作業を加える相対参照などは避けたいと思っています。 加えて、今後の活用の点からもピボットなどの機能ではなく、関数を組み合わせた数式で処理したいと思っています。 どのようにすればよいかお教えくだされば幸いです。 A A B B あ 1 2 3 4 あ 5 6 7 8 い 9 10 11 12 い 13 14 15 16 い 17 18 19 20 A B あ い

  • マクロ ActiveCellの番地を数字で知る

    マクロで ActiveCellの番地を数字で知りたいのですが どうすればよいのか、又、CurrentRegionの左端、右端の列番号、最上段、最下段の行番号を知るにはどうすればよいのでしょうか?

  • エクセル2007 結合セル

    エクセル2007 結合セル 下の画像のようなエクセルシートを 練習用に2枚作成しました。 上段が月の入力フォームで、 下段が各個人の営業成績表です。 ここで、下段の成績表の1行目が B列からI列まで、セル結合されており その中に表題の( 月分)が表示されています。 ここの月の前の空白部分に上段の入力フォームの黄色で 入力した月の数字をを自動的に表示させることはできるのでしょうか。 結合させなければ、簡単にできたと思いますが、 結合している前提で、教えていただけるとありがたいです。 よろしくお願いします。

  • Excelで、「+○,○○○」という表示を、数値として表示させるには?

    Excelで、「+○,○○○」という表示を、数値として表示させるには? 私の質問の書き方が悪かったので、改めて質問をさせて頂きます。 前回、お答えくださった方々には、この場を借りてお詫び申し上げます。 さて、本題ですが、 Sheet1のA1セルに、 Sheet2のA1セルに手入力した、「数字の前に + あるいは - が付く数値」を、桁区切りのカンマ付きで表示させています。 + を表示させるために、参照元のセルの書式を「文字列」にしています。 参照先のSheet1のA1セルの隣のA2セルに入っている数値を、 Sheet1のA1セルが -○,○○○ の場合には赤字で、 Sheet1のA1セルが +○,○○○ の場合には黒字で表示させたくて、条件付き書式で [=$A$1<0]という数式を入れてみたものの、 参照元が「文字列」なので、どうやら参照先も文字列と判断されてしまうらしく、条件付き書式が機能してくれません。(参照元を「標準」等に直せば機能します) +○,○○○という表示を、数値として表示させることができれば、解決すると思うのですが、他に方法があればそれにはこだわりません。 なにか良い案はないでしょうか? お知恵を拝借させてください。

  • エクセル 照合とオートフィルについて

    エクセル 照合とオートフィルについて エクセル2007で以下のようなシートが2枚できています。 上段が1枚目(シート1)で下段が2枚目(シート2)です。 2枚のシートの内容は同じなのですが、それぞれ数字と件数が 同じかどうか目視ではなく、関数と条件付き書式で処理できればと 思いました。 シート2の書式だけをシート3に作って、IF関数で処理しようと したのですが、シート3の最初の5行目にすべて数式を入力して それを7行目、8行目にコピーしたのですが、シート1が横に値があるのに対して シート2はとびとびに値があるのでうまくいきません。 1月31日までびっしりデータがあるので、いいやり方があれば教えてください。

  • カンマで区切られた二つの数値を分けてセルにコピー

    XPのOffice2003のエクセルです。ある二つの数値が文字列として一つのセルに例えば「375, 934」という風に、半角カンマと空白で区切られて入っています。これを二つのセルに数字「375」「934」と分けてコピーしたいのです。 ワークシートのセルで数式処理、あるいはVBAマクロのどちらかで、できる方法を教えていただけないでしょうか。

専門家に質問してみよう