Excel文字列関数についての質問

このQ&Aのポイント
  • Excel2007を使用している際に、セル内に特定の文字が含まれている場合に、後ろの数値を抽出する関数の作成方法について質問があります。
  • 具体的には、セルA1に『AA-11 $100.00』、A2に『BB $95.00』と入力されている場合、『AAという文字が含まれている場合はB1に$マークの後ろの数値を抽出し、BBという文字が含まれている場合はC1に$マークの後ろの数値を抽出する』という処理を関数で実現したいと思っています。
  • ただし、セル内に抽出したい数値の後ろに他の文字列が入力されている場合にも対応したいです。具体的には、セルA1に『AA-11 $100.00 aabbcc』、A2に『BB $95.00 abc』というような場合です。
回答を見る
  • ベストアンサー

Excelの文字列関数について

Excelの文字列関数について こんにちは。Excel2007を使用しています。 先日、こちらで質問させていただいた【QNo.5785641】の続きになるのですが・・・ セルの中にある特定の文字が含まれている場合は、ある文字の後ろの数値を抽出したいという質問で、 例えば、セルA1に『AA-11 $100.00』、A2に『BB $ 95.00』と入力されている場合、『AAという文字が含まれている場合はB1に$マークの後ろの数値を抽出、BBという文字が含まれている場合はC1に$マークの後ろの数値を抽出する』というものを関数を使用して作りたいというものに対し、 =IF(COUNTIF(A1,"*AA*")=1,RIGHT(A1,LEN(A1)-FIND("$",A1)),"") =IF(COUNTIF(A1,"*BB*")=1,RIGHT(A1,LEN(A1)-FIND("$",A1)),"") という回答をいただきましたが、さらに追加で質問です。 例えば、セルA1に『AA-11 $100.00 aabbcc』、A2に『BB $ 95.00 abc』というように、抽出したい数値の後ろにも文字が入力されている場合はどのようにしたらよいのでしょうか? 宜しくお願いします。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.1

前回( http://oshiete1.goo.ne.jp/qa5785641.html )の[回答番号:No.4]の式を下記に変更 B2: =IF(LEFT($A2,2)=B$1,LEFT(TRIM(MID($A2,FIND("$",$A2)+1,99)),FIND(" ",TRIM(MID($A2,FIND("$",$A2)+1,99)))-1)+0,"") 【独白】】前回「とても参考になりました」と仰っていたのは嘘?

kiyocco
質問者

お礼

回答ありがとうございます。解決しました。

その他の回答 (1)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

ヘルプを読んでFIND関数の使い方を理解していれば、MID関数と組み合わせることで簡単に表示できます。 =IF(COUNTIF(A1,"*AA*")=1,MID(A1,FIND("$",A1)+1,FIND(" ",A1,FIND("$",A1))-FIND("$",A1)))

kiyocco
質問者

お礼

回答ありがとうございます。 もう一度FIND関数を勉強しなおします。

関連するQ&A

  • Excelの関数?で困っています。

    Excelの関数?で困っています。 こんにちは。Excel2007を使用しています。 セルの中にある特定の文字が含まれている場合は、ある文字の後ろの数値を抽出するということはできますか? 例えば、セルA1に『AA-11 $100.00』、A2に『BB $ 95.00』と入力されている場合、『AAという文字が含まれている場合はB1に$マークの後ろの数値を抽出、BBという文字が含まれている場合はC1に$マークの後ろの数値を抽出する』というものを関数などを使用して作ることはできるのでしょうか? もしできるのであれば、ぜひご教示ください。 宜しくお願いします。

  • Excel特定文字抽出の関数を教えてください。

    Excelの特定文字からはじまる文字列を抽出したいです。 aa/bb(aa/は固定ですがbbは文字数を含めて可変します) また、aa/bbの前後にはほかの文字列(ccccやdddddなど)が入っています。 下記のような感じですが、aa/*****だけを抽出し何件あるか調べたいです。 最終的に結果のようにしたいのですが、関数かマクロを教えていただけますでしょうか? よろしくお願いします。 ・シート A1 ccc aa/bb ddddd     B1 gada aa/fasd haadf A2 rrrr aa/cccc nnaxxx B2 hjhafd aa/bb hfahfdha ・ ・ ・ ・結果 件数 aa/bb 2 aa/cccc 1 aa/fasd 1

  • エクセル文字列の関数について

    エクセルで、例えば、¥15,214みたいな一つのセルに入っている数字があるとします。その数字を一つ一つのセルに A1 1 A2 5 A3 2 A4 1 A5 4 と5桁の分ける場合、どうすればよいのでしょう? MID、RIGHT関数、と試してみましたが、どうも桁がずれたり、分かりません。 ちなみに数字の桁は変更がありますので、5桁の場合もあるし、3桁の場合もあります。あと、¥マークも付けたいと思っています。教えてください。

  • 関数の作り方教えてください

    A1・B1のセルにそれぞれ"98,-189"","と入力されている場合、A1セルの-189を抜き出すためにC1セルに組み合わせ関数を  =right(A1,Len(A1)-Find(B1,A1))と入力すると-189が 抜き出す事が出来るが、これをユーザー定義として以下の様に関数を作成するとコンパイルエラーがでます。 Function moji_nuki(対象 as string,検索文字 as string) moji_nuki=right(対象,Len(対象)-find(検索文字,対象)) End Function 関数を並べているだけですがsub Functionが定義されていないとエラーメッセージがでるのは何故か、何方か教えてください。ちなみにEXCEL2002です。よろしくお願いします。

  • Excelにて任意の位置の文字列を抽出したい

    Excelにて任意の位置の文字列を抽出したい セルA1に、あたい1(837,1077,132) セルA2に、あたい2(657,100,32) セルA3に、あたい3(20,10000,888) のような値が入っています。 ここから、132、32、888を取り出したいのですが、どのような式を入れたら良いでしょうか? Right関数だと上記のように桁数が2桁と3桁と混在している場合に抽出できませんでした。

  • Excelフィルタで指定文字数のセルを抽出可能?

    セル内で、指定する文字数が入っている場合、別セルに =IF(LEN(A1)=1,A1,"")で指定しています。 ※1文字しか無い場合に表示 それを、フィルタの機能で抽出できないでしょうか? 一文字目は各セルで違います。   A 1 ● 2 ●い 3 ★あいうえお 4 ■かきく ↑●のセルだけ抽出

  • Excel 関数で多数の複数条件・OR条件を指定

    こんにちは。Excelのことでわからない事を教えてください。 該当セル内に複数条件を指定して、いずれかが当てはまれば指定した文字列が表示されるようにしたいのですが、その条件が100個くらいになってしまいます。 例えば、 A1セルに【AAまたはBBまたはCC】が入力されたらC1セルに【ああ】と表示する。 A1セルに【DDまたはEEまたはFF】が入力されたらC1セルに【いい】と表示する。 A1セルに【GGまたはHHまたはII】が入力されたらC1セルに【うう】と表示する。 というようなことをしたいので、私は、C1セルに以下のような関数を作りました。 =IF(OR(COUNTIF(A1,"*AA*"),COUNTIF(A1,"*BB*"),COUNTIF(A1,"*CC*")),"ああ",IF(OR(COUNTIF(A1,"*DD*"),COUNTIF(A1,"*EE*"),COUNTIF(A1,"*FF*")),"いい",IF(OR(COUNTIF(A1,"*GG*"),COUNTIF(A1,"*HH*"),COUNTIF(A1,"*II*")),"うう","")) それで、その指定したい条件が100件くらいになってしまうのですが(指定するワードが100個という意味です)、地道に作っていくしかないのでしょうか。もっとスマートなやり方はありますか?ワードは今後追加もしくは削除していく可能性があるので、こんな作り方でいいのか悩んでいます。 そもそもこのようなものをExcelでやろうとするのは間違いですか? 皆様のお知恵を拝借したいと思います。アドバイス宜しくお願いします。

  • エクセル関数:右側の文字列を抜き出す方法

    エクセル初心者です。 文字列の抜き出す方法で悩んでいます。 たとえば、A1~A5までに下のような 文字列が順に入っているとします。 C:\abc\TEST1.DOC C:\abc\def\TEST2.DOC C:\abc\def\ghi\jkl\TEST3.DOC C:\abc\def\ghi\TEST4.DOC C:\abc\def\TEST5.DOC これらの文字列の一番右側の'\'以降の文字列 (TEST1~5.DOC)を、B1~B5のセルに 出したいと思っているんですが できるのでしょうか? RIGHT関数や、LEN関数、FIND関数を使って できそうな気がするのですが どうも良い方法が思いつきません。 よろしくお願いします。

  • 文字列の中から複数の数値を取り出す

    A1に画像のような2パターンの複数の数値入りの文字列が入っています この数値を1つずつ分けたい 当方 Excel 2013です 1. 現状 FIND の多用で実現できているのですが、数値が増えるとややこしくなるので、分かりやすくできないものかと質問しました。 2. また今後の拡張のため、数値の区切りを"/"でなく数値以外(2文字以上でもOK)で作れないかと模索しています。 気温28度、湿度54.7%、AB123C-456DEF7890GH-123.45JKL・・・ ←こんなのを 28 54.7 123 -456 7890 -123.45  ・  ・  ・ 合わせてご教授いただきたくお願いいたします。 一応、今使っているものを書いておきます、 A3  =VALUE(LEFT(A1,FIND("/",A1)-1)) A4  =VALUE(MID(A1,FIND("/",A1)+1,FIND("/",A1,FIND("/",A1)+1)-FIND("/",A1)-1)) A5  =VALUE(MID(A1,FIND("/",A1,FIND("/",A1)+1)+1,FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)-FIND("/",A1,FIND("/",A1)+1)-1)) A6  =IFERROR(VALUE(MID(A1,FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)+1,FIND("/",A1,FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)+1)-FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)-1)),LOOKUP(10^17,RIGHT(A1,COLUMN($1:$1))*1)) A7  =IFERROR(VALUE(RIGHT(A1,LEN(A1)-FIND("/",A1,FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)+1))),"-") 余談ですが A3 を =LOOKUP(10^17,LEFT(A1,COLUMN($1:$1))*1) とすると誤表示になった

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

    昨日、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))))

専門家に質問してみよう