• 締切済み

セルの一部のみを抜き出したい

501,rabbit,ウサギ,0,50,,70,,, 503,dog,犬,5,500,38,5, と言うようにA列にデータが並んでいます B列に2つめの,と3つめの,の間を表示させたいのですが MIDとSEARCHを使って関数をいれたところ 3つめの,より前が全部表示されてしまいました。 どなたかわかる方お教え願えませんか? よろしくおねがいします。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

長い数式になりますが次の方法は如何でしょうか。 =MID($A1,FIND(",",$A1,FIND(",",$A1)+1)+1,FIND(",",$A1,FIND(",",$A1,FIND(",",$A1)+1)+1)-FIND(",",$A1,FIND(",",$A1)+1)-1)

全文を見る
すると、全ての回答が全文表示されます。
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

Excelの話でしょうか。 関数で回答を得たい場合はどのように関数を使ったのか、関数式を書きこむと それに対してアドバイスをいただけると思います。 ご質問の内容からは何を間違っているのかをアドバイスすることができません。 本来 Excel ではセル内にカンマで区切ったデータを置くような使い方はしません。 そのようなデータの場合、  データ ⇒ 区切り位置 ⇒ カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ ⇒ 次へ ⇒ カンマ ⇒ 次へ ⇒ (区切られた列の書式を設定) ⇒ 完了 で、カンマで区切られたデータをセルに展開することができます。 このようにすると、のちのデータ処理を確実/簡素に行うことができます。

全文を見る
すると、全ての回答が全文表示されます。
  • kusa_mochi
  • ベストアンサー率76% (1599/2089)
回答No.1

ちょっと意味が分からないので、確認させてもらうが  ・A1のセルに "501,rabbit,ウサギ,0,50,,70,,,"  ・A2のセルに "503,dog,犬,5,500,38,5," という風にデータが入っているという事かな? そしてそのデータの中から、「ウサギ」とか「犬」いう3番目の文字列を取り出したいという事で間違いない? 上記で間違いないのなら、私ならば  ・C1のセルに1番目に出てくる","の位置を取り出す式をセット   =SEARCH(",",A1,1)  ・D1のセルに2番目に出てくる","の位置を取り出す式をセット   =SEARCH(",",A1,C1+1)  ・E1のセルに3番目に出てくる","の位置を取り出す式をセット   =SEARCH(",",A1,D1+1)  ・B1のセルにD1及びE1のセルにある値を使い3番目の文字列を取り出す式をセット   =MID(A1,D1+1,E1-D1-1) する事で目的を達成すると思う。 あと、老婆心ながら付け加えておくと、一つのセルの中にカンマで区切って複数の文字列を入れるのはExcelの想定していない使用方法なので出来るだけ止めた方が良いと思う。 Excelが想定している使い方は、A1のセルに501,A2のセルにrabbit,A3のセルにウサギ,・・・というデータの保持方法だと思うから。 (だから文字列取り出そうとして、今回のケースの様に難儀するのだと個人的には思っている)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • セル内の2行をそれぞれ別のセルにコピーするマクロ

    A列にデータが入力されていたとします。 そのデータのうち、複数のセルで改行されて2行になっています。 改行されているセルをサーチし、1行目をB列のセルに、2行目をC列のセルに分割してコピーしたいと思います。 この様な方法は、マクロで可能でしょうか。 適切な関数があれば、ご教授いただきたいと思います。

  • Excellで一つのセル内で改行する文字コードを関数で入力

    例えば セルA1に「あいう・abc」と入力します。そこにsubstitute関数かなんかで (replaceかな)"う"と"a"の間にchar(11)かなんかをいれて  「あいう  abc 」 と表示させたいのです。 どーしてもうまくいかなくて、いまはfind関数とmid関数で表示しています。 なんとか ならないのでしょうか? なんだか 文字列だどか数字だとかややっこしいくって こまってます よろしくお願いします。

  • 指定した3つのセルのデータを抽出し別表を作成する

    A表(A~F列、1~7行)のうちB、D、F列にデータが入力表示されたデータを抽出して別のB表(A,B,C列、1~7行)を作成するためのエクセル関数をご教授下さい。下図のとおり、F列は同じデータですのでVLOOK関数で表示できるのですが、B,D列にデータが入力されていない場合は、表示しないようにしたいのです。よろしくお願いします。 また、3つのうち一つでもデータがない場合は、表示させない方法でも結構ですよろしくお願いします。 [A表]    A    B    C    D    E   F 1  5    8     9    12    2   ○ 2  4                       ○ 3       7          10       ○   4                          ○ 5  3    4     10    5       ○ 6                          ○ 7                          × [B表]    A    B     C 1  8    12    ○ 2  7    10    ○ 3  4     5    ○ 4 5 6 7

  • スペースを含んだ文字列から文字列の抽出

    エクセルバージョン2007 スペースを含む文字列で、A列に文字列がある時、以下の式を組んで文字列を抽出しています。 先頭にIDの数字が有る場合は、それぞれの目的に合った文字列を抽出しています。 B1=LEFT(A1,SEARCH(" ",A1,1)-1) C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1) 3 3df-32654-10 CCCCHH 10 1ab-12345-00 AAABBBB この文字列の場合、B列に3と10が表示、C列に 3df-32654-10 1ab-12345-00が表示されます。 先頭に、IDの無い文字列は以下の様な構成です。 6rt-95132-00 PPPKKK この文字列の場合、B列に6rt-95132-00、C列にPPPKKKが表示されてしまい、この場合、IDの数字が無い場合はB列には表示させない又は、C列に6rt-95132-00させたいと思っています。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • Excel VBA   %の入ったセル

    困りました、、、 VBAを使って A×30%+15000 これが入ったセルB2と たとえば250000が入ったセルB2を掛け算したいのですが (B2の数字は固定ではなくいろいろな数字が入ります) 文字列が入っていることにより うまくいきません 今は仕方なくMid関数で数字を抜き出して使っているのですが なにかよい方法はないでしょうか よろしくお願いします<m(__)m>

  • 入力されるまで合計セルを空白にしたいのですが

    A5:A120にデータ入力し、A121に「Sum」で合計を だしています。B列からM列も同様になっています。 列のデータは1~0の数字だけです。 当該列のセルが未入力だと当然合計欄は「0」に表示 されています。 この場合、「0」が目障りなので、いずれかのセルにデータ が入力されない限り、空白表示にしておきたいのです。 どんな関数をどう使えば良いのでしょうか?

  • 重複した(?)セルの内容を一部削除し残りを取り出す

    何時も勉強させて頂いております。 現在、エクセルで困っておりお力を借りたく質問させて頂きたいと 思います。 エクセルで帳票などを作成しているのですが、   A  |     B    |  C  |    D     リーダー|    メンバー  | 欠席者 |  最終参加者  佐藤  |鈴木、齋藤、小林 |     |佐藤、鈴木、齋藤、小林 見づらいと思いますが、こんな感じで入力しています。 A列にはリーダー(必ず1名)、B列にはメンバー(2~4名程度)、 C列には当日欠席する人がいた場合その人の名前を記入し、D列には A列とB列をあわせた人の名前が入っています(A&"、"&Bという感じで)。 今回分らないのは、C列に【小林】と入った場合、 AとBは変更せずにD列には【小林】を抜いた、 【佐藤、鈴木、齋藤】とだけ表示させたいのです。 ※C列に【佐藤】と【小林】が入った場合は、D列には【佐藤】と 【小林】を抜いた【鈴木、齋藤】とだけ表示させたいと思っています。 重複したデータがあった場合、行単位で消す方法は分るのですが、 【セルの中のデータから同じ名前(重複と考えて)だけを抜き出した 残りのデータだけを取り出す】方法が分からないのです。 このExcelデータを使用する人はパソコンに詳しくなく、 データの入力、削除(セルの内容全て)をするのが精一杯な年配の方で(変更はできない)私としては、ただ入力するだけでOKというデータを 作っているのですが、こういった事はできますでしょうか? データを全部入れなおせば簡単なのですが、 A列とB列はSeet2で使用し、D列はSeet3で使用しており、更に この上のような行が数十行あるのです。。。 どうぞお力をお貸し下さい><

  • エクセルで文字列の右から4文字を削除してセルに表示したい

    明けましておめでとうございます。宜しくお願いします。 エクセルの文字表示で、A列(A1~A20)に文字数の違う文字列が20行程入力されています。それを、A列(A1~A20)のセルに入力されてされている文字列から4文字だけ削除して、B列(B1~B20)に表示(入力)したいのですがどうすればいいのでしょうか? 例えば、A列(A1~A20)のセルにそれぞれ「今年は2008年です。etc.」とか「今年は2008年1月3日です。etc.」、、、など文字数の違った文字列が入力されているセルの右から4文字分「etc.」だけ削除してB列(B1~B20)に「今年は2008年です。」とか「今年は2008年1月3日です。」というふうに表示(入力)したいのです。テキストを読んでMID関数で出来るかなと思ったのですが、MID(文字列の、何文字目から、何文字分)というもので、文字列の左から何文字目を先頭に、何文字分を表示ということで、私のやりたい事の逆なのです。いい方法を教えて下さい。

  • エクセルの文字列・数値【長文です】

    昨日、LEFT関数の使い方を教えていただきましたが、これですとLEFT関数を用いたところが【文字列】として認識されました。【数値】として認識させる方法を教えてください。 初心者で申し訳ございません。 昨日の質問・いただいた回答は以下の通りでした。 ≪質問≫ [123456/あいうえお/abc][234567/かきくけこ/efg]のようなデータがいくつかあって(例えばA列に)、B列に[123456][234567]、C列に[あいうえお][かきくけこ]、D列に[abc][efg]と表記できるような【関数】を教えてください。 ≪いただいた回答≫ A1にデータがあったとして。 B列 =LEFT(A1,SEARCH("/",A1,1)-1) C列 =LEFT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),1)-1) D列 =RIGHT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),LEN(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)))-SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1))))

  • Excel ユニーク数1のものだけを数えたい

    Excelに関しての質問です。 例えばA列に「犬」「ねこ」「うさぎ」という文字列がそれぞれ複数散らばっているとして、B列には「犬A」、「犬B」、「犬C」… 、「ねこA」、「ねこB」…というように文字列がそれぞれ複数入っているとします。(アルファベットはA以降、どこまで入っているかわからないとします)(A列とB列の動物の種類はそれぞれ一致するものとします。) C列で、B列のユニーク数をカウントものを出します。 →ここからが本題なのですが、A列の動物に対して、B列の「ABC...」の数はいくつかを出したい(=D列)のですが、関数はどのようになりますか? ユニーク数が「1」であるものの数を数えればいいと思うのですが、式を教えていただきたいです。