プロが教えるわが家の防犯対策術!

括弧で括られた文字列の中から中央に位置する数字のみを抽出する関数を教えてください。下の例でいえば中央の数字を抽出する場合に両端の()と、個以外の数字のみを取り出すのに、例に示すようにsubstitute関数を3回使用して中央の数字のみを取り出すことはできましたが、関数名自体の綴りのみならず関数式も長くなりましたので、これよりもシンプルな関数式、例えば文字数に関係なく数字だけを取り出す関数式やRIGHT関数やLEFT関数を使用して右端2文字と左端の1文字のみを削除する関数などがございましたらお願いします。


   (12345個)-----12345
   (1234567個)---1234567

 セルA1にある(12345個)の文字列から12345だけを抽出する関数式を下のように考えま  した。
  =substitute(SUBSTITUTE(substitute(A1,"(",""),")"),"個",""))

注意 括弧内の数字の桁数は決まっていません。
     数字の最後には個が表示、両端は必ず()で数字が括られます。

   上述の式よりシンプルな式がございますか。
   これ以外の数式があれば教えてほしいのですが。

質問者からの補足コメント

  • substituteの前についているマイナスの意味を今一つ教えて頂けないでしょうか。宜しくお願い致します。

    No.3の回答に寄せられた補足コメントです。 補足日時:2016/02/01 15:30

A 回答 (4件)

これで


=MID(A1,2,(LEN(A1)-3))
    • good
    • 0
この回答へのお礼

ご回答頂きまして有難うございます。とてもシンプルにできましたね。自分で考えたものよりもコンパクトにまとめられるとは驚きました。

お礼日時:2016/02/01 14:10

計算するなら 数値化して


=-(SUBSTITUTE(A1,"個",""))
    • good
    • 0
この回答へのお礼

ご回答有難うございます。自分で考えた関数式がこんなに短くシンプルに出来るとは夢にも思いませんでした。
本当に有難うございます。一つ教えてもらっても良いですか。substitute関数の前にマイナスが付いていますが、ネットでいろいろ調べましたが、マイナスの意味が分かりません。何卒ご指導お願いします。

お礼日時:2016/02/01 15:07

かっこが一対多かった(^^;


=-SUBSTITUTE(A1,"個","")
数値化されています。
この回答への補足あり
    • good
    • 0

文字列として (1234) のようにかっこをつけたことにより負の意味を表す


[Ctrl]+[1]セルの書式設定-表示形式 数値 負の表示形式 を参考にしてください

文字列(数字) の状態で計算させるとExcelは「負の数値」に変換してくれます
たとえば
=1*"(1234)"
とすると -1234 になります
よって、-1*"(1234)" とすれば正の数になり中身を取り出せる。
省略し
=-"(1234)"

質問では「個」だけ取り除けばよかったし、SUBSTITUTE関数は理解しているようなので
=-SUBSTITUTE(A1,"個","")
としました
    • good
    • 0
この回答へのお礼

文字列に括弧を付けると負を意味するとは初めて知りました。だから関数名の前にマイナスを付けたのですね。これまでの説明で十分に理解できました。本当に有難うございます。

お礼日時:2016/02/01 20:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!