[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数のセルから数字だけを抜き出す関数』(ナッパの君)
複数のセルから数字だけを抜き出す関数
例えば
B7からJ7に入力された文字のなかから数字のみをK7に表示させる
B7…1
C7…無し
D7…6
E7…無し
F7…有り1
G7…無し
H7…3
I7…途中45
J7…無し
K7 161345
このようし表示したいのですが可能でしょうか?
< 使用 Excel:Excel2013、使用 OS:Windows7 >
Function fCon(R As Range) As String Dim cw As String Dim i As Long
For i = 1 To R.Count cw = cw & R(i).Text Next
fCon = "" For i = 1 To Len(cw) If Mid(cw, i, 1) Like "[0-9]" Then fCon = fCon & Mid(cw, i, 1) End If Next i End Function (???) 2015/08/05(水) 17:05
UDF別案です。
K7 : =ExtractNum(B7:J7)
(???)さんのと比べて手抜きで、1行しかサポートしませんが。
Function ExtractNum(r As Range) As String With CreateObject("VBScript.RegExp") .Global = True .Pattern = "[^\d]" ExtractNum = .Replace(Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose(r.Rows(1))), ""), "") End With End Function
(β) 2015/08/05(水) 18:12
手抜きをやめ、指定された領域をすべて対象にしました。
セル側は =ExtractNum(B7:J10) とか =ExtractNum(B7:B20) 等。
Function ExtractNum(r As Range) As String Dim w As Variant Dim c As Range Dim x As Long
ReDim w(1 To r.Count) For Each c In r.Cells x = x + 1 w(x) = c.Value Next
With CreateObject("VBScript.RegExp") .Global = True .Pattern = "[^\d]" ExtractNum = .Replace(Join(w, ""), "") End With
End Function
(β) 2015/08/05(水) 20:27
数字
数字以外
数字以外+数字
というパターン(数字+数字以外という並びが無い)とすると、
=IFERROR(LOOKUP(10^17,RIGHT(B7,COLUMN($1:$1))*1),"")&IFERROR(LOOKUP(10^17,RIGHT(C7,COLUMN($1:$1))*1),"")&IFERROR(LOOKUP(10^17,RIGHT(D7,COLUMN($1:$1))*1),"")&IFERROR(LOOKUP(10^17,RIGHT(E7,COLUMN($1:$1))*1),"")&IFERROR(LOOKUP(10^17,RIGHT(F7,COLUMN($1:$1))*1),"")&IFERROR(LOOKUP(10^17,RIGHT(G7,COLUMN($1:$1))*1),"")&IFERROR(LOOKUP(10^17,RIGHT(H7,COLUMN($1:$1))*1),"")&IFERROR(LOOKUP(10^17,RIGHT(I7,COLUMN($1:$1))*1),"")&IFERROR(LOOKUP(10^17,RIGHT(J7,COLUMN($1:$1))*1),"")
でどうでしょうか?
きっと関数マスターの方々ならもっと短く出来ると思います。
(ウッシ) 2015/08/06(木) 08:23
本当にありがとうございました
(ナッパの君) 2015/08/06(木) 15:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.