• 締切
  • 困ってます

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

  • 質問No.9671704
  • 閲覧数100
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数1

お礼率 70% (459/647)

emaxemaxさんの
http://okwave.jp/qa/q9671491.html?f=mail_favorite_new
に類似した質問をさせていただきます。

添付図を参照ください。
A列の、文字&数字、あるいは、数字&文字からなるテキストをB列に示す数値に変換する数式を教えてください。

特に期待するのは5、11行目の実現です。
その他の行も含めて、マクロを使わずに、条件付き書式を含む上段(あるいは下段)共通の数式を教えてください。

回答 (全3件)

  • 回答No.3

ベストアンサー率 28% (4502/16077)

前の質問でも正規表現という、やり方で回答したので、本問にも目が留まり、やってみた。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

お礼率 70% (459/647)

》 VBAをやらない人にはむつかしかろうと思うが…
全く仰るとおりです。
投稿日時:2019/10/27 22:36
  • 回答No.2

ベストアンサー率 67% (848/1253)

Excel(エクセル) カテゴリマスター
質問では「文字」となっていて、
「全角文字」、「半角文字」の指定が明確でなく、
「全角数字」は「文字」なのか「数字」かの指定も明確でないので迷いました。

文字は、「全角文字」、「半角文字」両方混在して、
「全角数字」は「文字」としての算式です。

=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

お礼率 70% (459/647)

ご回答、ありがとうございました。
B列は文字列でなく、冒頭(左端)の 0 を“表示”させる数値のつもりでした。
投稿日時:2019/10/27 18:03
  • 回答No.1

ベストアンサー率 23% (4141/17508)

他カテゴリのカテゴリマスター
A1セルから数字取得
=MID(A1,MIN(SEARCH({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),LEN(A1)-(LENB(A1)-LEN(A1)))
補足コメント
msMike

お礼率 70% (459/647)

aokiiさん、
先ほど書いた[お礼コメント]中で貴方様のお名前を間違えて仕舞ったことを深くお詫び申し上げます。
投稿日時:2019/10/27 19:09
お礼コメント
msMike

お礼率 70% (459/647)

ご回答、ありがとうございました。

実は、A列の「文字&数字」の「数字」とB列の「数値」には意味の違いを含めたつもりでした。
nishi6さんの式の戻り値は「数値」でなく「文字列」を右揃えにしたものですよね。
数値にするには例えば「*1」を当該式の末尾に付加すればOKですが、その場合に冒頭の 0 を表示させるには書式設定が必要になります。

》 条件付き書式を含む上段(あるいは下段)共通の数式を教えてください。
は無理な注文だったのでしょうか?そうかも知れない、と思い始めましたが…

ちなみに、上段の場合の私が考えた文字列を戻り値とする式は下記です。
=MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),99)
投稿日時:2019/10/27 17:54
結果を報告する
    • 2019/10/28 09:41
    • コメントNo.1

    私が意図する回答が得られそうもないので、締め切ります。

AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ