
No.6ベストアンサー
- 回答日時:
No.3です。
今回もユーザー定義関数でやってみました。
セル内の文字数に制限はなく、最後の数値のあとに数値以外の文字列があっても
結果は最後の連続する数値を表示するようにしています。
Function suuti(myRng As Range)
Dim k As Long, str As String, myStr As String, myFlg As Boolean
For k = Len(myRng) To 1 Step -1
str = StrConv(Mid(myRng, k, 1), vbNarrow)
If str Like "[0-9]" Then
myFlg = True
myStr = str & myStr
End If
If myFlg = True Then
If Not str Like "[0-9]" Then Exit For
End If
Next k
If Len(myStr) > 0 Then
suuti = Val(myStr)
Else
suuti = ""
End If
End Function
※ ファイルを保存するときは
「マクロ有効ブック」として保存します。m(_ _)m
No.4
- 回答日時:
再度失礼します。
質問者さま大変失礼ながら”A1”の部分を対象セルに置き換えをわすれていませんか?3つ同じセルを置き換えする事になります。
左・真ん中・右にあります。
先程はスマホから投稿しまして、できないとのことでしたので
記述間違いかと思いエクセル開いて試しましたがちゃんとできますよ!
1つでも置き換え忘れるとできません。
確認してもらえますか?
=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),LEN(A1))
↑ ↑ ↑
ここ ここ ここ
申し訳ございません!!
対象セルの中身が1→Ⓐ30と→の前にも数値が入ってしまっておりました。
無事に数値だけ抽出できました。有難うございます
No.3
- 回答日時:
こんにちは!
すでに回答が出ていますので、別案です。
この質問限定の関数(ユーザー定義関数)を作成してみてはどうでしょうか?
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → VBE画面を閉じてExcel画面に戻ります。
Function suuti(myRng As Range) 'この行から//
Dim k As Long, str As String, myStr As String
For k = 1 To Len(myRng)
str = StrConv(Mid(myRng, k, 1), vbNarrow)
If str Like "[0-9]" Then
myStr = myStr & str
End If
Next k
If Len(myStr) > 0 Then
suuti = Val(myStr)
Else
suuti = ""
End If
End Function 'この行まで//
通常の関数と同じ使い方ができます。
仮にA1セル以降にデータがあり、B1セル以降に表示させたい場合はB1セルに
=suuti(A1)
という数式を入れフィルハンドルで下へコピーします。
※ セル内に飛び飛びで数値があっても
すべての数値が羅列されます。m(_ _)m
こんにちは!!有難うございます
ユーザー定義関数初めてです…凄いですねこれは!
無事に欲しい数値が出てきました。
ちなみに20→Ⓐ30という表示があったとき、現在は2030と表示されますが、30だけの表示は得られますでしょうか?質問続きで申し訳ございません。
もし良かったらお時間あるときご教示頂けますと幸いです。
本当に有難うございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スプレッドシートで複数のプル...
-
【マクロ】アクティブセルの2...
-
Excelについての質問です 並べ...
-
excelで日付関数の文字列変換の...
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
枠に収まらない文字を非表示に...
-
エクセルの一つのセルに複数の...
-
セルをクリック⇒そのセルに入力...
-
(Excel)数字記入セルの数値の後...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセルの書式設定の表示形式...
-
エクセルのセルの枠を超えて文...
-
Excel 例A(1+9) のように番地の...
-
EXCEL VBA セルに既に入...
-
エクセル 足して割る
-
Excelで数式内の文字色を一部だ...
-
Excelでのコメント表示位置
-
Excelで、「特定のセル」に入力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
貼り付けで複数セルに貼り付けたい
-
excelの特定のセルの隣のセル指...
-
枠に収まらない文字を非表示に...
-
エクセルの書式設定の表示形式...
-
数式を残したまま、別のセルに...
-
【エクセル】IF関数 Aまたは...
-
セルをクリック⇒そのセルに入力...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
Excel 例A(1+9) のように番地の...
-
対象セル内(複数)が埋まった...
-
EXCEL VBA セルに既に入...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excelで数式内の文字色を一部だ...
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
Excelでのコメント表示位置
-
連続しないセルから最小値を引...
おすすめ情報