• ベストアンサー

Excel関数

お世話になります。 Excelで、あるセル内の「~~Number○○~~」という文字列から、前後の不要な文字列を省いて「Number○○」部分だけを抽出する方法(関数?)はありますか。  注)○○の部分には様々な数字が入り、1桁の場合と2桁の場合があります。 また、「~~Number○○~~」という文字列から、自分で指定した特定の数字を含む場合のみ「Number○○」の文字列だけを抽出する方法もありますか。 ご教示いただきたく存じます。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 今仮に、元の文字列がA1セルに入力されていて、数字の部分も半角であるものとします。 >「~~Number○○~~」という文字列から、前後の不要な文字列を省いて「Number○○」部分だけを抽出する方法(関数?)はありますか。  一例として、次の様な関数となります。 =IF(ISNUMBER(MID(A1,FIND("Number",A1)+6,1)+0),MID(A1,FIND("Number",A1),ISNUMBER(MID(A1,FIND("Number",A1)+6,2)+0)+7),"") >また、「~~Number○○~~」という文字列から、自分で指定した特定の数字を含む場合のみ「Number○○」の文字列だけを抽出する方法もありますか。  例えば、その「特定の数字」をB1セルに入力する事で指定するものとした場合には、一例として、次の様な関数となります。(B1セルに入力する数字が1桁の場合には、その数字が、「Number」の後に続く数字の、10の位にある場合と、1の位にある場合の両方に対応しますし、B1セルに入力する数字が2桁の場合にも対応します) =IF(AND(IF($B$1="",ISNUMBER(MID(A1,FIND("Number",A1)+6,1)+0),AND(ISNUMBER($B$1),LEN($B$1)<3,OR(ISNUMBER(FIND("Number"&$B$1,A1)),COUNTIF(A1,"*Number?"&$B$1&"*"))))),MID(A1,FIND("Number",A1),ISNUMBER(MID(A1,FIND("Number",A1)+6,2)+0)+7),"")

ishiikun
質問者

お礼

御回答ありがとうございました。非常に参考になりました。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>○○の部分には様々な数字が入り、1桁の場合と2桁の場合があります。 A1に「~~Number1~~」のように記入されているときに =IF(ISERROR(FIND("Number",A1)),"",REPLACE(LEFT(A1,FIND("Number",A1)+6+ISNUMBER(--MID(A1,FIND("Number",A1)+7,1))),1,FIND("Number",A1)-1,"")) などのように。 >自分で指定した特定の数字を含む場合のみ 少し応用して =IF(ISERROR(FIND("Number33",A1)),"",REPLACE(LEFT(A1,FIND("Number",A1)+6+ISNUMBER(--MID(A1,FIND("Number",A1)+7,1))),1,FIND("Number",A1)-1,"")) のように。

ishiikun
質問者

お礼

御回答いただきありがとうございます。参考にさせていただきます。

noname#204879
noname#204879
回答No.1

》 ~~Number○○~~ 「Number」は半角文字列だけど、「○○」は全角数字?それとも半角数字? 「~~」の部分の具体例を幾つか挙げてください。 前の「~~」と「Number」と「○○」と後ろの「~~」は、スペースなしにビッチリとくっついているの? 「自分で指定した特定の数字を含」まない場合はどうしたいの?

ishiikun
質問者

お礼

御回答ありがとうございました。無事に解決に至りました。

関連するQ&A

  • Excel関数

    Excel2010を使用しています。 A~E列 及び H~K列の1,000行目くらいまで、1ケタから5ケタの数字を入力しています。 重複した数字がないか確認したいのですが、適した関数はありますか? (重複していた場合、指定したセルに「重複」と出るような関数など) セルは空欄の場合もあります。 ご教示いただければ幸いです。よろしくお願いします。

  • Excel2010のCOUNTIF関数で誤動作

    A列に20桁の数字ばかりの「文字列」が入ったセルが1000行ほどあります。 A列の書式は文字列に設定してあります。 特定のセルの中身が重複してないことを確認しようと。 B1=COUNTIF(A:A,A1) のようにしたところ、うまく動きませんでした。 調査したところセル先頭から15文字までしか認識してくれません。 文字列扱いして欲しいのですが、数字ばかりなのが気に入らないようです。 数字だけのまま20桁認識させる方法は無いものでしょうか?

  • Excel2003の関数で文字の抽出

    Excle初心者です。以下のことを関数を使用して実行したいのですが・・・。宜しくお願いします。 列の各セルには文字の羅列があります。これらの特定文字のみを抽出またはカウントしたい。   列1 ----------- (1)(2)(3) (2)(3) (3)(5) (1)→1 (2)→2 (3)→2 (4)→0 (5)→1

  • Excel2000使用・関数式を教えてください

    A列~AV列まで6桁の数字が入力されています。 行によって、入っている件数(F列までデータが入っているとか、 AC列まで入っているとか)はマチマチです。 入っている数字もマチマチです。 数字の中には、000001、001000など、0から始まる数字もあり、 セルの書式設定はユーザー定義で種類を000000にしています。 別sheetに6桁の数字の一覧があるのですが、 (1)一覧にない数字が入力されているとエラーが表示されるようにしたい また、 (2)6桁の数字は前半3桁と後半3桁が隣の列のセルと一致しないといけないのですが、 不一致の場合は、エラーが表示されるようにしたい 例) A2 000001 B2 001000 C2 000120 D2 120346 E2 346508 F2 508346 G2 346508・・・    A3 123456 B3 456280 C3280002 D3 002428 E3 428508 F3 508346 G3 346213・・・ E2 346508 F2 508346 G2 346508 のように数字が繰り返すこともあります。 Light関数を使うと(2)は解決できたのですが(1)が解決しません =IF(RIGHT(TEXT(入力Sheet1!A2,"000000"),3)=LEFT(TEXT(入力Sheet1!B2,"000000"),3),"","ERR") MATCH関数を使うと =MATCH(入力Sheet1!A2,一覧sheet!$A$2:$A$500,0) (1)は解決したのですが、(2)が解決しません。 (1)(2)とも解決する式、或いは方法を教えて頂けたら助かります。 上記の関数式は、以前、この場で教えていただいたものです。 入力用のシートと別に、検証用のシートを作成しています。 又、もし、もし可能でしたら、別シートにある数字が4桁と5桁と6桁が混在している場合でも流用できるものであるとなお有り難いです。 その場合は前後の3桁が一致するときと、前後の2桁が一致するときがあるという イレギュラーなケースになります。入力した数字は以下のようになります 12345 4512 12650 65034 3458 58260 260013 013134 ・・・ よろしくお願い致しますm(__)m

  • セル内のある範囲の文字列を関数で抽出したいです

    すみません、以下のような文字列がセルにある場合に、エクセル関数を使って、特定する範囲の文字列を抜き出したいのですが、ご教示頂けませんでしょうか? A1セル:()で囲まれた文字列が先頭と末尾に含まれています。  (文字列1)文字列2(文字列3) A2セル:文字列2だけを抜き出したいです。  文字列2 あともし可能であれば、文字列2を抽出する際に(文字列3)の部分を、 A3セルに入っている文字列に変更したいのですが、 A3セル:たとえば、「1234567」と入っていた場合では、【】をつけて  文字列2【1234567】 という形に直したいという内容となります。 いろいろ試してみたのですがどうしてもできず、お力添え頂けませんでしょうか? 何卒宜しくお願い致します。

  • エクセルで特定の範囲の文字列を抜き出したいのですが関数がわかりません。

    エクセルで特定の範囲の文字列を抜き出したいのですが関数がわかりません。 抽出の条件は「セルの中の【 】でくくられた部分」(【】も含む)です。 各セル内の文字列はすべてこの【】から始まる文章で構成されているのですが、 【】内の文字数はそれぞれ違うという状態です。 文字数が固定の場合の関数は思いつくのですが、異なる場合がよくわかりません。 よろしくお願いします。

  • 指定した文字列が抽出できる関数

    Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。

  • EXCELの関数!!

    たとえば セルのA1からセルのA1000位までの行に不特定の数字を入れていて 抽出したい特定の数字が100個位あるとします。 数字がヒットした時に何でもいいから表示されるような関数を教えてもらえませんか? 一月分なら並べ替えでなんてことはないんですが12か月分もあるんで! 今考えているのが セルのA2の列以降に抽出したい数字を全部入れてIF関数で挑戦していますが出来ません! よろしくお願いします。

  • EXCEL関数 特定の文字列間の文字の抽出について

    こんにちは。 Excelでセルの中の、特定の文字列と文字列の間にある文字列を抜き出せる関数がありましたら教えてください! 例:A1セルに、 「~  error_message: エラーが発生しました。  detailed_description: ~  ~」 と記載されています。 「error_message: 」と「detailed_description:」の間にある文字(この場合「エラーが発生しました。」)を抽出したいです。 ※間にある文字の内容、文字数は一定ではないです。 なかなかうまく行かず、苦労しています。。。 ご教示ください。よろしくお願いいたします。

  • Excel2010でcountif関数について

    countif関数を使って、特定の文字が入力されたセルの数を算出するシートを作っています。検索する文字に"*"(アスタリスク)を指定すると数字以外のセルがすべてカウントされてしまいます。 =countif(範囲,"*") 他の文字列と同じように検索するにはどうしたら良いでしょうか?

専門家に質問してみよう