[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『数字で挟まれた文字列の見抜きだし』(しろ)
質問内容:文字列 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.