• ベストアンサー

[EXCEL]セル内の数値の取り出しができる関数

zinchanの回答

  • ベストアンサー
  • zinchan
  • ベストアンサー率49% (97/197)
回答No.5

 No.4の方のおっしゃるとおりです。具体的な制限条件があれば、数式を単純化できますが、あらゆる条件を想定すると、式が複雑・煩雑になり、メモリーも消費します。  仮に、文字列の数字部分は、任意の数字が1カ所で任意に連続しており、その1カ所しか存在しないこと、数字部分のあとには、空白文字が3つ必ずあるという2つの前提の元で下記に示したく思います。  [A1]に文字・数字の羅列された文字列があるとします。文字・数字は任意の文字・数字・文字数であるとします。  それに対応するセル(例えば[B1]に、 =MIN(IF(ISERROR(SEARCH(1,A1,1))=TRUE,32767,SEARCH(1,A1,1)),IF(ISERROR(SEARCH(2,A1,1))=TRUE,32767,SEARCH(2,A1,1)),IF(ISERROR(SEARCH(3,A1,1))=TRUE,32767,SEARCH(3,A1,1)),IF(ISERROR(SEARCH(4,A1,1))=TRUE,32767,SEARCH(4,A1,1)),IF(ISERROR(SEARCH(5,A1,1))=TRUE,32767,SEARCH(5,A1,1)),IF(ISERROR(SEARCH(6,A1,1))=TRUE,32767,SEARCH(6,A1,1)),IF(ISERROR(SEARCH(7,A1,1))=TRUE,32767,SEARCH(7,A1,1)),IF(ISERROR(SEARCH(8,A1,1))=TRUE,32767,SEARCH(8,A1,1)),IF(ISERROR(SEARCH(9,A1,1))=TRUE,32767,SEARCH(9,A1,1)),IF(ISERROR(SEARCH(0,A1,1))=TRUE,32767,SEARCH(0,A1,1))) という数式を入れておきます。  これは、0~9までの任意の数字を見つけて、その先頭の数字の位置が、文字列の開始位置から何番目か調べる式です。なお、式中の32767は、MSエクセルでの1セルの最大入力可能文字数です。  さらに、[C1]に、 =IF(B5=32767,0,SEARCH(" ",A5,1)-B5)  (式中の" "には、空白文字が3つ入っている)と入力すると、[A1]の文字列の内、空白文字が3つ連続して入っている位置の先頭文字数を調べ、それに[B1]の値を減じた値を返します。  以上によって、数字の位置の先頭位置と、数字の連続桁数が算出できます。  最後に、[D1]に、 =MID(A1,B1,C1) と入力することで、[A1]セルの数字の開始位置から、連続桁数分の文字(数字)を取り出すことができます。  3行以上上記の式を入れた行を設定しておき、オートコンプリートをかけていれば、[b・C]列を非表示にしていても、[A]列に任意の文字を入力すれば、式を手動でコピーすることなく、自動的に抽出された値が[C]列に返ってきます。  ご質問の内容を行うにあたり、このような文字列がいくつもあって、それらの数字部分だけをそれぞれ取り出したいのではないかと思いました。よって、別表を使ったVLOOKUP関数は、あまり適さないのではないかと考えます。  もっと簡単な式を作成することは可能かとは思いますが、条件がわからないので、任意の文字による文字列でも対応可能なものを考えました。

関連するQ&A

  • EXCEL関数 数値セルが何個下に出てくるか?

    EXCEL関数で質問です。 A1:A5セルそれぞれに、文字列、空白、数値のいずれかが入っています。 そのうち数値のセルが最初に出てくるのは上から何番目か、というのを B1セルに関数で表示したいのです。 たとえば、A列上から、 あ、A、100、100、0 なら3、 愛、(空白)、百、8、ZZZ なら4 という具合です。 お知恵をお貸しください!

  • Excel2002でセルへの数値代入

    使用しているのはExcel2002なんですが 関数などを使用して空白セルへ数値及び文字列を 代入することって可能でしょうか? 例を挙げると、 セルA1に7という値を入力すると、 セルC1にある関数が「10-A1」という計算を行って セルB1に3という値を返すようにしたいのです。 また、セルB1に4という値を入力すると、 セルC1で計算を行い、セルA1には6が返る。 このようにセルA1、B1ともに、人の手で数値の 入力が行われる可能性があるので、表示部分のセルに 関数式を記述せず、空白としておく。 C1に入力する関数は IF(B1="",10-A1,10-B1) として、この結果を、またIFなどを使って 空白の方のセルに入力してあげればいいかなー というところまでは考え付いたのですが・・・ どなたか教えてください。

  • Excel関数 セルの文字に区切りをつけて結合させたい

    また変な質問ですみません。 Excelで以下のようなセルがあります。   A    B    C    D    E    F 10/5、6  10000  10/10  20000  10/21  50000 間のB、D、F列はどうでもいいのですが 不連続となったA・C・Eの内容を以下のように表示したいのです。 10/5、6、10/10、10/21 ←ひとつのセルの中に データのある列は固定です。 本当は10/5、6、10、21としたいのですが、そこまでは求めません。 (月がまたがることもあり、順番もまちまちなので) このときに悩んでいるのが、空白のセルがある場合もある、という ことです。その場合にはスキップをさせたい。 例)Cにデータがなければ10/5、6、10/21 普通にA1&"、"&とつなぐと空白の場合に「、、、」となってしまい さらにセルが3つではなく10個以上あるので計算式も長くなって しまうのです。(しかも縦に1000行ある・・・) 何かお知恵はないでしょうか・・・。

  • vlookup関数を含むセルを空白に置き換えたい

    お世話になります。 Excelでvlookup関数を含むセルを全て空白セルに置き換えたい場合、どのような方法が考えられますでしょうか? 置換機能で可能なのでしょうか? 出来るだけ簡単なやり方を教えていただきたく宜しくお願い致します。

  • 関数を使って出した数値の入ったセルの足し算の仕方

    関数を使って出した数値の入ったセルの足し算の仕方 上の図の黄色いセルに数値が全て入っていれば問題ありません。 しかし黄色い部分は関数を使って呼び出された数値が入っているため下図のように空白があるとエラーになってしまいます。 空白部分を無視して足し算をさせるにはどのようにしたら良いのでしょうか?

  • 関数によって空白したのを数値「0」に置き換える

    A.............B...............C 1 ZZ............6..............× 2 AA........... 1 3 BB 4 CC............3 B列にはそれぞれ関数が入っています。 セルB1には、B2、B3、B4の数値の合計です。 C1のセルには、C1数値とB2、B3、B4の数値の合計が一致しているか否かの判定する関数が 入っており、一致していなければ、"×"が表示させるようにしています。 しかし、ここで問題が起きました。 「VALUE」というエラーが表示されました。 上記の表では、セルB3は、空白になっております。 本来は、セルが空白になっている場合は、「0」が格納されていると思うのですが、 ここには、関数によって、文字列?の「空白」に置き換えられています。 例えば = IF((Z5) ,5, "") ようにです。 多分、関数によって文字列として認識される空白("")を置いたためと思います。 関数によって置き換えた空白("")を数値「0」として認識できる関数を教えてください。 いろいろな方法があると思いますが、「関数」のみで教えてください。 C1には、以下の関数が入っています。 =IF((B1) = (B2+B3+B4) ,"○","×")

  • Excel関数について

    Excel関数について質問です。 以下の二つ (1) 下のように、セルA1から入力されてるものを、1、2、3・・と数字順に並び替える良い方法はありますでしょうか。 A-1 A-10 A-10A A-100 A-2 A-20 A-22.5 ・ ・ A-555 ・ ・ (2) 一行目と二行目に値の入ったセルと空白セルが混在しています。どちらも同じものに対する値の為、一行目にまとめようと、一行目の空白セルに二行目のセル(下)に値がある場合はその値を返し、空白の場合は空白のままにするというIF関数を使いましたがうまくいきませんでした。三行目と四行目、五行目と六行目・・とかなりあります。良い方法を教えていただけますでしょうか。 よろしくお願いいたします。

  • Excel関数について

    どなたかおしえてください セルのデータを比較して30以上大きい場合は高い、-30以下の場合は低い、それ以外を空白表示する場合の関数をおしえたください 例   30  100 高い 120 40  低い 100 100        

  • Excel/指定のセル間の空白をカウント

    Excelの関数についての質問です。 ある範囲内で”指定の値のセル(1)”と”指定の値のセル(2)”を検索しその間の”空白セル”の数をカウントしたいんですが、方法はありますでしょうか。 例えば、「範囲:A1~Z1」、「指定値を含むセル:C1((1))、W1((2))」の間で空白のセルのカウントをする場合です。※範囲の間のセルには空白セルと文字入力されたセルがある前提です。 以下の様にMATCH関数を使用すれば、全てのセルの数をカウントできるのですが、それでは、空白 のセルだけという条件に当てはまらず、目的を達成出来ません。 ■MATCH((2),A1:Z1,0)-MATCH((1),A1:Z1,0)=20 何か良い方法はありますでしょうか?

  • 【エクセル】VLOOKUP関数入れたセルのエラー表示を空白表示にしたい

    エクセル2000 XP SP2 VLOOKUP関数入れたセルのエラー表示を空白表示にしたい 500ほどのデータを別表からVLOOKUPで参照して入力しています 別表にデータがないものはエラー表示#NAになってしまいます。 これを空白にする方法はありますか? 以前はVISTAと2007でIFERRORですんでいたのですが 2000だと使えなくて困っています