- ベストアンサー
セル内の特定の文字列を探す方法
- Excelの関数を使用して、セル内の特定の文字列を検索する方法について説明します。
- 通という文字列がセル内に存在する場合に、その文字列が左から何文字目にあるかを取得する方法を紹介します。
- 特定の条件(○通となっている文字列)で文字列を探したい場合、どのような数式を使用すれば良いか説明します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A1 セル 見積書12534通 B1セルに =MID(A1,FIND("見積書",A1)+3,LEN(A1)-FIND("見積書",A1)) 結果 12534通 出はどうですか。 各セルのデータ状態(バラエティ)の説明が不十分で、答えにくい(無駄な回答をさせる)質問の表現だ。 上記では、「見積書」という語句のあとを問題にすればよいと考えたが、間違いか?
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
今のご質問の書きぶりだと,別に悩まず =FIND("通",A1,1)-1 =MID(A1,FIND("通",A1)-1,2) で十分というお話になっちゃいますね。ご相談でホントにヤリタイ事のご説明が不十分です。 作成例: ○通じゃなく単純に最初の数字を見つける =MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890)) 作成例: 1~5通を探す =MIN(FIND({1,2,3,4,5,6,7,8,9,0}&"通",A1&{1,2,3,4,5,6,7,8,9,0}&"通")) 例えばじゃなくホントにはどんなデータでどんな結果が欲しいのか,できるだけ実際の事実でご相談を書くようにしてみるとこういった齟齬も回避できます。次回以降のご参考に。
お礼
回答頂きありがとうございました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
「通」の前の数字が99桁以内であれば、例えば「本日の通信件数2,345通、既読件数2,089通」などの様に、「数字+"通"」よりも前の所に別の「通」の文字が含まれている場合や、「数字+"通"」に該当する箇所が複数箇所ある場合においても、最初に現れた「数字+"通"」の部分(この例の場合は「2,345通」)のみを取り出す事が出来る方法です。 途中のB1セルは使わずに、「数字+"通"」の部分を表示させるセルに次の関数を入力して下さい。 =IF(SUMPRODUCT(COUNTIF(A1,"*"&{1,2,3,4,5,6,7,8,9,0}&"通*")*1),RIGHT(LEFT(A1,FIND("0通",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(ASC(A1),1,0),2,0),3,0),4,0),5,0),6,0),7,0),8,0),9,0))+LEN("通")),SUMPRODUCT(ISNUMBER((1&RIGHT(LEFT(A1,FIND("0通",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(ASC(A1),1,0),2,0),3,0),4,0),5,0),6,0),7,0),8,0),9,0))),ROW(INDIRECT("Z1:Z99"))))+0)*1)+1),"") 尚、返す値に含まれている数字の桁数(この場合「,」の数も桁数に含む)が99桁までになる事は無い場合には、計算処理の負荷を減らすために、上記の関数における INDIRECT("Z1:Z99") となっている部分の中の「99」をもっと少ない数字に修正して下さい。 又、考え難い事ですが、逆にもしも99桁では済まない様な場合には、上記の「99」という箇所を、もっと大きな数字に変更して下さい。
お礼
回答頂きありがとうございました。
- mshr1962
- ベストアンサー率39% (7417/18945)
B1 {=MIN(SEARCH(ROW(A1:A9),A1&ROW(A1:A9)))} ※ { } は式入力後にCtrl+Shift+Enterで配列数式にすると自動で付きます。 で C1 =MID(A1,B1,LEN(A1)) とすれば2桁以上でも対応できます。
お礼
回答頂きありがとうございました。
お礼
回答頂きありがとうございました。