電子書籍の厳選無料作品が豊富!

お願い致します。
セル内に【あいうえお123】
とあり、その中から【123】のみを別のセルに新しく抽出したいのですが、どのようにすれば良いでしょうか?
どうぞ宜しくお願い致します。

A 回答 (6件)

こんにちは。

Wendy02です。

>という場合の全角半角混じりの数字だけを抜き出す方法
「参考にします」だけですと、一体、どれが本当にご質問に対する回答かわかりませんが、まあ、参考は、参考だから、これが正解でなくてもよいとは思いますし、これも参考にしてください。(^^;

取り付け方:
Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。
次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、再び、Alt + F11 で、画面を閉じます。

後は、一般の関数と同じような扱いです。ただし、IEの5.5以上が必要だったと思います。

=PICKUPFIG(A1)
とすると、
あいう123えお456かきく789けこ10
 ↓
12345678910
となります。

=PICKUPFIG(A1,True)
とすると、
あいうえおかきくけこ

となります。

(どこでも、いつでも、一般の関数といっしょのように使いたい、ということになると、少し難しい作業が必要です。)

 '<標準モジュール>
'--------------------------------------------
Function PickupFig(範囲 As Range, Optional オプション As Boolean = False) As String
  '文字列混在の中から、数字を抜き出す関数
  Dim Re As Object
  Dim rng As Range
  Dim Matches As Object
  Dim Match As Object
  Dim myValue As String
  Dim myValues As String
  Set Re = CreateObject("VBScript.RegExp")
  Set rng = 範囲
  Application.Volatile
  If オプション = False Then
   myPattern = "([\d0-9]+)"
  Else
   myPattern = "([^\d0-9]+)"
  End If
  With Re
   .Global = True
   .Pattern = myPattern
   For Each c In rng
     If Not IsError(c) Then
     Set Matches = .Execute(c.Value)
     For Each Match In Matches
      myValue = myValue & .Replace(Match, "$1")
     Next
    End If
    myValues = myValues & myValue
   Next c
  End With
  Set Re = Nothing
  PickupFig = myValues
End Function

p.s. 今の私のレベルは、この程度しかありません。問題点は、VBAを通しているので、計算スピードが遅いことです。最近、もっと技術力をアップしなければならないことを痛感しています。
    • good
    • 0
この回答へのお礼

丁寧に答えて頂いてありがとうございました。
私はWendy02さんより、もっともっと技術も理解力も知識もなくお恥ずかしい所存です。。。
今後もよろしくお願い致します。

お礼日時:2005/09/27 17:41

こんばんは。



#3さんのご指摘のとおりです。ちょっとご質問がはっきりしませんね。タイトルの「条件」って何ですか?数字だけを抜き出したいとかいうものではありませんか?

ただ、その数字と文字の組み合わせも、#4さんのようなご指摘の場合もあります。もう少し、条件をはっきりさせてください。もう、既に出ているご回答で満足なら、どうか無視してくださって結構です。私は、もっとも複雑な例の場合を考えていますから。

例:
「あいう123えお456かきく789けこ10」
という場合の全角半角混じりの数字だけを抜き出す方法
ただし、ユーザー定義関数です。

この回答への補足

ちょっと、お礼の書き方がおかしかったので、ここでお伝えします。
>「あいう123えお456かきく789けこ10」
という場合の全角半角混じりの数字だけを抜き出す方法
を、また手が空いた時にでも教えて下さい。
ありがとうございます!!

補足日時:2005/09/27 01:21
    • good
    • 0
この回答へのお礼

いえいえ、とんでもない。
とても勉強になります。
ありがとうございます。

お礼日時:2005/09/27 01:18

>【123】のみを別のセルに新しく抽出したい


設問では【あいうえお123】以外にデータがないような記述がされているので、愚直にそのとおり理解してその中から「123」だけを取り出す答を書きます。【あいうえお123】が入力されているセルが仮に「A1」だとすると、例えばB1に
=RIGHT(A1,3)
と入力します。

蛇足ですがあいうえお123】以外に例えばA2以下に【かきくけこ123】などがある場合でも答は同じです。
しかし【さしすせ1234】や【たちつ123てと】などがある場合は答は違います。
=MID(A2,SEARCH(1,A2,1),3)
となります。
ご質問以外の余計な答ですが……。
    • good
    • 0
この回答へのお礼

余計だなんて、とんでもない・・
ありがとうございます!!
参考にさせて頂きます。

お礼日時:2005/09/27 01:21

この質問おかしくありません。


見つかったら、抽出されてセットされるのは「123」ばかりですが、良いですか。123を除いたものの方が面白そう。
(例)
asd123123
xxxx
sdf123123
123asdf123
A列に元データがある。
B1に
=IF(ISERROR(FIND("123",A1)),"","123")
と入れて下方向に複写する。
私の勘違い?
    • good
    • 0
この回答へのお礼

むむ・・・質問内容が伝わらなかったかも知れません・・・。しかし、良い勉強になりました。
ありがとうございます。

お礼日時:2005/09/27 01:17

=RIGHT(A1,LENB(A1)-LENB(ASC(A1)))


とかでどうでしょう
    • good
    • 0
この回答へのお礼

なるほど、ありがとうございます。。

お礼日時:2005/09/27 01:15

こんにちは~



すべて<文字列+数字>というパターンなのでしょうか?

そうだとすれば、"あいうえお123" が A1だとして、

=LOOKUP(10^17,RIGHT(A1,COLUMN(1:1))*1)

としてみてください。
10^17 は、10の17乗です。^ は、ひらがなの「へ」のキーで出ます。
    • good
    • 0
この回答へのお礼

ありがとうございました。参考にしてみます。。

お礼日時:2005/09/27 01:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!