• 締切済み

タグの間の文字のみを表示したい

Excelの文字列操作で良い関数があれば教えてください。 例:A1セル:<abc>あいうえお</abc> A2セルにあいうえおのみを表示したいです。

みんなの回答

  • kouji_124
  • ベストアンサー率46% (283/605)
回答No.2

関数だけでやると、ちょっと複雑になりますが以下の式で出来ます。 =MID(A1,FIND(">",A1,1)+1,FIND("<",A1,2)-1-FIND(">",A1,1)) 関数の説明をしますと、[MID(文字列,開始位置,文字数)]は指定した「文字列」の「開始位置」から「文字数」分の文字列を抜き出します。 [FIND(検索文字列,対象,開始位置)]は、「対象」の文字列の「開始位置」以降に一致した「検索文字列」の位置を返します。 詳細を説明をしますと、先ず特定の文字列から一部分を抜き出したいので「MID関数」を使いますが、「文字列」の部分は元となる文字列なので「A1」を指定します。 「開始位置」は、タグの">"の後からにしたいので「FIND関数」を使い">"の位置を探しその1文字後と言う事で[FIND(">",A1,1)+1]とします。 「文字数」は">"と"<"の間の文字数を割り出せばよい訳ですから、先ず"<"の前迄の文字数を割り出したいので「FIND("<",A1,2)-1」とします。 この時、"<"は文字列の先頭にも存在するので「開始位置」を「2」として2文字目から検索する事によって先頭の"<"を無視します。 また、「FIND関数」の結果から「-1」することで"<"の前の位置がわかります。 次に、前半部分の削りたい文字数は、「開始位置」と同じ様に">"を探せばよいので「FIND(">",A1,1)」とします。 二つの式の引き算により「文字数」が求められるので[FIND("<",A1,2)-1-FIND(">",A1,1)]となります。

micchy1974
質問者

お礼

丁寧にご説明下さいましてありがとうございます。 上記方法でもやってみます。

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

エクセル関数には、2つの文字列を指定して、その間の文字列を取る関数は存在しない。関数を組み合わせるほか無い。 ある文字列の出現位置はFind関数でわかる。ですから2つの文字列の 出現位置(何文字目か)を出して、両者の差が文字列長になるので、 一方1つの文字列の先頭と文字列長で文字列を抜き出す関数Midがあるのでそれを使う。 両者ともエクセル関数で文字列を扱う関数でベスト2、3に入る有名な関数です。 ーーー A2セルにデータがあるとして =MID(A2,FIND("<abc>",A2)+5,FIND("</abc>",A2)-FIND("<abc>",A2)-5) タグらしいものの、前後関係、存在関係は異常な例は無いものと仮定している。 ーー 本当はVBAでも、同じような考えになるが、別に正規表現という考えが 在って、そのオブジェクト(プログラム)を使えば、正面からとりあげられるようになる。 HTML文など扱おうと思えば、上記関数では処理しきれないだろう。

micchy1974
質問者

お礼

上記関数でうまくいきました。 本当にありがとうございました。

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

関連するQ&A

  • Excelで特定文字があった場合、文字を表示したい

    はじめまして。 Excelの関数で質問があります。 あるセル(仮にA1)に文字列を入れます。 他のセルに「A1にAの文字があったら、B1(このセル)にC1にある文字を表示する。Aの文字がなかったらなし、と表示する」という関数を指定したいと思っております。 一応、調べた限りでは「=if(find("A",A1),C1,"なし"」というような関数を使おうと思っております。 が、使用してみたら、「Aの文字がなかったら、なし、と表示する」の部分ができませんでした。 解決するにはどのようにすればよいでしょうか。 また、他によい関数がありましたら併せてお教えいただきたいと思います。 宜しくお願いいたします。

  • 文字列として認識されている計算式の結果を表示させたい

    エクセルでサイズ等を入力したシートがあるのですが (例)    A1 35*120*150    A2 *8          A3 /2    ⇒ 35*120*150*8/2 (CONCATENATE関数)  ⇒ 315,000      ( ??? ) これらのセルの文字列をつなげて表示する方法は何とか分った(CONCATENATE関数)のですが、この時の実際の計算結果を表示させたいのですが出来ません…方法があるでしょうか? もし解る方があったら教えて下さい。

  • 関数の計算結果に単位をつけて表示するには?

    こんにちは。久しぶりにエクセルを使って疑問が出てきました。 エクセルで関数を使用して計算をし、結果が数字であらわされるとき、何らかの方法でそれに単位をつけて表示させることはできるでしょうか。 (シンプルな具体例) A1のセルでSUM関数を用いて列の合計を出したとします。 A1=SUM(A2:A30) これになにか文字列操作やその他の工夫をして 「合計**個」 と「A1のセル」に表示させることはできますか? 今まで何度か同じことを疑問に思って 試したり探したりしたのですが、 スカッとした答えに行き当たらないので(つまりできないのならできないということでもしかたがないので)、 どうぞご存知の方教えてください。 よろしくお願いいたします。

  • エクセル 関数 001 002と文字列で表示した

    お世話になります。 XP/ エクセル2003 使用です。 エクセルの関数で、 数字を3桁で数字を表示したく 下記のように関数を組みました。 (セルの書式は、文字列にしています) 001の場合  =IF(A1="","","001") とし、001が問題なく返ってきます。 次のセルに、002と連番を振っていきたいので  =IF(A2="","",B1+1) としましたが、   2  (002ではない) と返ってきます。(書式は文字列) 002、003、004・・・と続けていきたいのですが、 どのようにすればよろしいでしょうか? ご多用中恐れ入りますが、 よろしくお願いします。

  • EXCELで、文字列を任意の文字数毎に分割するには

    ≪やりたい内容と条件≫ ◆EXCELで、文字列を任意の文字数毎に分割したいです。 ◆文字列は、全角・半角・記号を含みます。 ◆1つのセルが半角80桁という制限があり、その上限を超えると、右の次のセルに流し込まれるようにしたいです。(A1は元の文字列1500桁くらい、以降B1,C1,D1,E1・・・という具合に流し込み) ≪試した内容≫ MIDB関数を見つけ挑戦しましたが、1つ目のセルはうまくいきますが、その後が出来ません。例えば、文字列が「・・・・・・abcあいうえお」となっていた場合、B1は「・・・・・・abcあいう」、C1は「 お」(「お」の前は、半角スペース)となります。 何かよい方法はないでしょうか。 一度に出来ないようであれば、A1-B1で残りの文字列が表示できれば、それ以降はまた関数を入れて一つ一つやっていきたいと思っています。 よろしくお願いいたします。

  • A列とB列で文字数が少ない方をC列に表示する関数

    エクセル2007を使用しています。 A列とB列に下記のように入力されている時、C列に文字数の少ない方を関数で表示させるにはどうしたらよいでしょうか? なおかつ、A列とB列の文字数が同じ場合はA列の文字を表示させたいです。 A列       B列       C列 リンゴ     オレンジ     リンゴ あいうえお   ABC       ABC 時計       帽子      時計 よろしくお願いいたします。

  • セル内の文字列操作について

    Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。

  • 間に入っている数字だけ表示したい

    エクセル2002を使っています。 「出荷」という名前のシートがあります。 A1には、「A940721検品済」と入っていて、A列に600行ぐらい書いてあります。 関数を使って、B1のセルに、間の「940721」という数字(年月日です)だけを表示させたいです。 数字の前はA~Zのアルファベット1文字だけです。 リプレイス関数を使ったら?と上司は言いますが、前にも後にも付けた事が無いので、やりかたが分かりません。 よろしくお願いします。

  • EXCEL関数にて、他のセルの条件により文字表示を変えたい

    スミマセン。 EXCEL関数にて、他のセルの条件により文字表示を変えたいのです。 EXCEL 2000 SP-3です。 関数について教えていただければ幸いです。 A,B,Cの三つのセルがあります A,bの内容次第でcに ”良”と表示したいのです。 a,b共に空欄なら、Cも空欄 aに文字列が入ったら Cは”良”と表示 a、bに文字列が入ったら Cは空欄 内容はいずれも文字列です。 どうしても関数で行いたいのですが、時間ばかり掛かって 作成することが出来ませんでした。 どなたかアドバイスをお願いいたします。

  • エクセル セルの表示形式「文字列」だけを抽出したい

    エクセル2007を使用しています。 A列に数字が入力されていますが、そのセルの表示形式は、「標準」「数値」「文字列」とバラバラです。 この「文字列」のセルだけを抽出したいのです。 例えば、関数などを利用して、B列に表示するなど。 よろしくお願いします。

専門家に質問してみよう