• ベストアンサー

エクセルで、()内の数値だけを取り出したい

エクセルで今A1のセルに 文字列(半角数値) という内容のデータが入っています。 B1のセルに()内の数値のみを取り出して表示させたいの ですが、何かいい方法が無いでしょうか?

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.6

#1です。 Noubleさん、ありがとうございます。 >=SUBSTITUTE(RIGHT(B4,LEN(B4)-FIND("(",B4,1)),")","") >ですよね? そうでした。 ()内の数値が2桁でのみ検証してました。 私の数式では、2桁以外の場合はだめでしたね。 失礼しました。

karori-na
質問者

お礼

#1とまとめてお礼させていただきます。 訂正後の式で問題なく変換できました。 大変助かりました。ありがとうございました。

その他の回答 (5)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.5

う~ 誰か助けて~ =SUBSTITUTE(CHAR((MID($B$4,COLUMN(OFFSET($A$1,0,COLUMN(A1)-1,1,LEN($B$4))),1)=CHAR(ROW(48:57)))*ROW(47:56)+1),CHAR(1),"") で数値を示す文字列の餞別までは {"","","","","1","2","","","","3"} と言う感じにまで出来たのだけど この各要素の結合が出来ない (~ ~;)ヾ 結合さえ出来れば"123"と言う感じに取り出せるのだけど… p・s・ marbinさん式が違うようですよ =SUBSTITUTE(RIGHT(B4,LEN(B4)-FIND("(",B4,1)),")","") ですよね? LEN(B4)- の部分が抜けてましたよ

karori-na
質問者

お礼

いろんなパターンでご検証いただき、ありがとうございます。 エクセルはまだまだ初心者で、関数の勉強をこれからしていきたいと 思います。ご回答ありがとうございました。

  • shanglee
  • ベストアンサー率43% (58/134)
回答No.4

=ABS(A1) がスマートかな、と思います。 でも私だったら、右カッコ、左カッコをそれぞれを 空白に置換しちゃうかな。 カッコ付き版も残したければ、セル[B1]には[=A1]と入れておいて、A列には表示形式で["("0")"]というふうに設定します。

karori-na
質問者

お礼

これも簡潔なので試してみたのですが、なぜかうまくいきませんでした。 簡単な関数も理解できていない状態なので、これからの参考にさせて頂こうと思います。ありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

=-VALUE(A1) でいかがでしょうか?

karori-na
質問者

お礼

簡潔な式なので試してみたのですが、なぜかうまくいきませんでした。 私もよく分かっていないので、これから勉強しようと思います。 ご回答ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

=MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)*1

karori-na
質問者

お礼

関数があまり分かっていないのですが、とりあえずこの式で乗り切ることが できました。これから勉強しようと思います。ありがとうございました。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

すぐに識者からもっと簡潔な式が提示されると思います。 とりあえず、の案です。 =SUBSTITUTE(RIGHT(A1,FIND("(",A1,1)),")","")

関連するQ&A

  • エクセル2000で文字列から数値を抽出したい。

    エクセル2000で文字列から数値を抽出したい。 ワークシートのA列に下記の文字列が入力されています。 A1セル="123456 日本男子 54,321 7,654,321 12,345" A2セル="234567 東京都子 1,234 2,345 5,321" A3セル="345678 大阪太郎 99 689 9,876" データ間はスペースで区切られています。 後方2番目の数値をB列に取出す方法を教えて下さい。 B1セル=7,654,321 B2セル=2,345 B3セル=689 よろしくお願い致します。

  • エクセル 数値だけ抽出するには?

    エクセルで、文字列+スペース+数字と入力されているセルから数値だけ取り出す方法を教えていただけますか? 文字列とスペースの字数は一定で、数値の桁数は6-8桁と変動します。 A列からb列のように変換したいのです。 A列          B列 PMID:_12345678    12345678 PMID:_123456     123456 宜しくお願いいたします。

  • エクセルで半角数字には数値と文字列がある?

    http://okwave.jp/qa/q6473596.html の質問を見て私も納得がいかず質問させていただきます。 たとえば、A1セルの書式を文字列に設定してから半角で数字を打ち込むと数字は数値でなく文字列としてセルに入ります。 この入力後、A1セルの書式を標準や数値に直してもそのセルの中の数字は左に寄ったままで文字列のままでいるようです。 (でもこれをセルの中でエンターキーを押したりすると数値になってしまいますが) 次にB1セルの書式を標準あるいは数値にして数字を打ち込むと、当然のことですが数字は数値としてセルに入ります。 この入力後、B1セルの書式を文字列に変えると数字は左に寄りますから一見文字列になったように見えます。 ところが上記のセルとこのセルをA1=B1で試してみるとFALSEが返ります。 逆に同じ数字を数値として打ち込んだセルと=で試すとTRUEが返ります。 これはA1とB1は同じ文字列としての数字ではないという証拠だと思います。 B1セルの書式を標準に戻すとまた数字は右よりにもどりますから、セルの中の数字は数値のままのようです。 つまり、半角の数字にはセルの書式にかかわらず文字列と数値の二つがあるということなのでしょうか? だとしたらこの二つはどうやって区別すればいいのでしょうか?

  • Excelで、数値データとして参照したいのに、文字列データとしてしか参照してくれません

    Excelで、ある数式セルに表示されたデータを、数値データとして参照したいのですが、どうやっても文字列データとしてしか認識してくれません。 具体的に書くと、 例えばセルA1に、FIND関数で他のセルから抜き出した半角数字のみのデータを表示しているとします。 そのA1の数値を、今度はセルA2で、 if(A1=1000,A1*2,A1/2) などと数式で参照したい時に、私のExcel(2002です)では、どうやってもA1=1000という条件式をきちんと判別してくれません。どうやら、FIND関数で抜き出したために文字列データとして扱われてしまっているようです。 その証拠に、A1が実際に「1000」の時に if(A1="1000",A1*2,A1/2) という風に1000をダブルクォーテーションで囲んで式を書くと、きちんとA1*2を実行してくれます(つまり、A1が実際に1000の時でも条件式の1000をダブルクォーテーションで囲まないと、きちんと判別してくれないという事です)。 この状態から抜け出せずに、どうにも困っています。 どうにかA1の「1000」というデータを文字列でなく数値データとして条件式で利用できるように出来ないものでしょうか。 乱文ですみませんが、よろしくお願いいたします。

  • Excel の数式を教えて下さい。

    Excel 2003 を使用しております。 A列 の A2 から A10 のセルに数値データが入っています。 この A列 数値データの中の最大数値のセルと、同じ行の E列 のセルの数値を B1 のセルに表示する数式を教えて下さい。 要約: A列 の最大数値のセル、例えば、A5 とすると E5 のセルの数値をB1 のセルに表示。 宜しくお願いいたします。

  • Excelで数値を文字列にした時

    例えば0001の前に「’」をつけると、0001って文字列になりますよね。 で、A1に「0001」って表示されて、オートフィルを使ってドラッグすると A2以降に0002~の番号がふられます。(今回はA1:A10に0001~0010まで ふっているということで) で、この0001とか0002って文字列のはずですよね。 なのにB1のセルに=A1+A2にするとちゃんと「3」て出てくるんですよ。 でも、COUNT関数でA1:A10を指定すると「0」が表示され、COUNTA関数で A1:A10を指定すると「10」が表示されてるってことはやっぱA1:A10のデータ は文字列ですよね。 他にもフィルタオプションで「>=’0005」(シングルクォーテーションは半角) とかって指定してもちゃんと抽出されたりと、 この「’」をつけるというのは数値を完全に文字列にしているのでしょか? ご存知の方教えてください。

  • A列・B列にある数値を区切り一つのセルにまとめたい

    いつも素早いご回答をいただき、ありがとうございます。 どなたかお助け願います。(画像添付ございます) A列・B列にある数値を半角コンマで区切り単一のセルに出力したい。 1つのセルに (A列情報),(B列情報) のように半角コンマで区切って 出力を行いたいのです。上記の(   )は必要ありません。 データが1万件ほどあり、本日中に仕上げなければなりません。 何か良い方法はありませんでしょうか? エクセルは2013を使用しております。 検索しても出てこなかったのと、自分でマクロで試しましたが、 だめでした。

  • Excelの日付が数値化されてしまいます

    今、Excelで日付の記入してあるセルと別の文字列のセルを"&"または"Concatenate"関数でくっつけて表示させたいのですが、日付が数値化されてうまく表せません。このような場合どのようにすれば、日付をそのまま表示させることができるのでしょうか。 (内容) セル1:2005/4/14 セル2:業務棚卸 ↓ 併せて表示すると"38456.546119213業務棚卸"になってしまう。

  • エクセルで数値と文字が入ったセルからの数値の抽出

    皆さんこんにちは。 エクセルの使い方についての質問です。 添付画像の例のようにA列に 「XXYYYZZ(XとZは文字、Yは数値で3桁または4桁)」というフォーマットで 数値と文字が入っているセルがあります。 同様にB列には「WWZ(Wは数値)」というフォーマットで、 同様に数値と文字が入っているセルが並んでいます。 これらからDやE列にあるように数値のみを取り出すためには DやE列にどのような関数を入れてやればよいのでしょうか。 どなたか教えていただければ幸いです。 よろしくお願いします。

  • 数値0をカウントしない。エクセル2007でデータベースを作っています、

    数値0をカウントしない。エクセル2007でデータベースを作っています、B,C,D列に別のシートから数値をコピーしています、元データに数値が有ればコピーされ、なければ0.00と表示しています。 各列の最下段にデータ数、平均値などを表示させたいのですが0.00のセルををカウントさせない方法を教えて下さい。B3からB100まで準備し、現在はB10までしか数値入力されていません、最下段B101にはB3からB10までの平均値などを表示したいのです、B100まで毎日入力が有ります。

専門家に質問してみよう