[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『数字で挟まれた文字列の見抜きだし』(しろ)
質問内容:文字列 abcd01efghij234 のように数字で挟まれている文字列"efghij"だけを関数を使用し、抜き出したいと考えています。どなたかよい方法をご存知でしたらご教示ください。
[エクセルのバージョン]
Excel2002
[OSのバージョン]
Windows2000
試作しましたが、ネストレベルが7を超えてしまったので、 名前付数式での2段構えです。 対象文字列がSheet1のA1に入力されていて、B1に出力する場合の例です。 メニューの挿入>名前>定義で
配列数式なので Enterで確定せずに ShiftとCtrlを押しながらEnter で確定。 ↓検証結果です。 abcd01efghij234 efghij dddd1ffffff0 ffffff 1fffff12354 fffff d564a1111 a abcdef1 abcdef abcdef2a #N/A 2aa #N/A gggg #N/A (みやほりん) 【追加】末尾に数字がないと#N/Aエラー。
しかし、なんでこんなことが出来るんですかねぇ???(^^;; ヒヤアセ (SoulMan)
リアクションありがとう。 こういう関数パズルは大好き♪ (みやほりん)
文字列(住所)を数字で分割します。 これを応用すれば,何とか出来そうに思います。vbaですが。(なお)
http://www2.moug.net/app/bbs/message.php?cat=exvba&id=20041214-000010
おはようございます。
マクロを使っていいなら
標準モジュールに貼り付けて
=MyStr(A1)
とします。
Option Explicit
Function MyStr(MyRng As Range) As String
Dim MyA As String, MyB As String, MyC As String
Dim i As Long
Dim MyFlagA As Boolean, MyFlagB As Boolean
If MyRng.Count > 1 Then Exit Function
MyFlagA = False
MyFlagB = False
MyStr = MyRng.Value
For i = 1 To Len(MyStr)
If IsNumeric(Mid(MyStr, i, 1)) Then
If MyB <> "" Then
MyC = MyB
MyFlagB = True
End If
MyFlagA = True
Else
If MyFlagA Then
MyB = MyB & Mid(MyStr, i, 1)
End If
End If
Next
If MyFlagA And MyFlagB Then
MyStr = MyC
Else
MyStr = Empty
End If
End Function
abcd01efghij234 efghij efghij
dddd1ffffff0 ffffff ffffff
1fffff12354 fffff fffff
d564a1111 a a
abcdef1 abcdef
abcdef2a #N/A
2aa #N/A
gggg #N/A
gg1s1gg s
aa11s11a11a11 saa
1s25saw5s15sd5 ssawssd
d5s5w33gg55ddd swgg
1s47aaqs8854c1 saaqsc
d55s1w1d54d8dd swdd
d15ss41vb245de ssvb
a1ss11ww5454ss5 sswwss
145sw45aaz142s swaaz
ss1415aq1s2154 aqs
ss141s4254as s
s41sa1s512ssaqs sas
121sd54s14a215x sdsa
ss14s12as51d24 sasd
どうでしょう?
(SoulMan)
=IF(A1="","",REPLACE( LEFT(A1,MATCH(1,IF(ISERR(-MID(A1,ROW($1:$19),1))*ISNUMBER(-MID(A1,ROW($2:$20),1)),))),1, MATCH(,IF(ISNUMBER(-MID(A1,ROW($1:$19),1))*ISERR(-MID(A1,ROW($2:$20),1)),),),)) として、Ctrl+Shift+Enter。 というものなのですが、B列のように戻ります。 (LOOKUP)
A B C 1 1s25saw5s15sd5 s25saw5s15sd ssawssd 2 1s47aaqs8854c1 s47aaqs8854c saaqsc 4 d55s1w1d54d8dd s1w1d54d swdd 5 d15ss41vb245de ss41vb ssvb 6 a1ss11ww5454ss5 ss11ww5454ss sswwss 7 145sw45aaz142s sw45aaz swaaz 8 ss1415aq1s2154 aq1s aqs 9 ss141s4254as s s 10 s41sa1s512ssaqs sa1s sas 11 121sd54s14a215x sd54s14a sdsa 12 ss14s12as51d24 s12as51d sasd
、、、これで、抽出されたものの中から数字だけを除けば
なんじゃないんですか??? σ(^◇^;)には、できませんがぁ(;^_^A あせあせ・・・ あっ、あたまいたなってたぁ..... (SoulMan)
うへぇ、収まるもんですね。 (みやほりん)マイリマシタ
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.