• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのセル内の文字列から抽出したい)

エクセルのセル内の文字列からURLとサイト名を抽出したい方法

このQ&Aのポイント
  • エクセルのセル内には、<a href="http://URL/" target="_blank">サイト名</a>という形式の文字列があります。これからURLとサイト名をそれぞれ抽出したい場合、左から9文字を削った後、SUBSTITUTE関数を使って不要な部分を置換する方法があります。
  • 具体的には、B列には以下の式を入力します。=SUBSTITUTE(A1, LEFT(A1, 9), "") これにより、URL部分以降の" target="_blank">サイト名</a>"が削除されます。そして、C列にはA列のデータがそのまま表示されます。
  • ただし、URLはセルごとに文字数が異なる可能性があるため、一括でURLとサイト名を抽出するためには、VBA(Visual Basic for Applications)を使用する必要があります。VBAを使うと、マクロを作成してセルの内容を一括処理することができます。

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

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

B1: =MID(A1,10,FIND("target=",A1)-12) C1: =MID(A1,FIND(">",A1)+1,FIND("</",A1)-FIND(">",A1)-1)

ROLLY617
質問者

お礼

ご回答ありがとうございました。 無事解決しました。 とても助かりました。

その他の回答 (4)

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

例示のデータのケースなら、単純なワイルドカード置換をするのが簡単だと思います。 元データをコピーし、そのデータ範囲を選択して(貼り付けた状態のまま)、Ctrl+Hで置換ダイアログを出し サイト名を抽出するなら、検索する文字列に「<*>」置換後の文字列に何も入力ぜず「すべて置換」します。 URL部分を抽出するなら、同様に検索する文字列に「<*"」で「すべて置換」してから、そのままもう一度、検索する文字列に「"*」と入力して「すべて置換」してください。

ROLLY617
質問者

お礼

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

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

データの始と終わりの条件をどう規定したら良いか、考えましたか。 それはわかったにしても、エクセルのFIND関数程度では実現が難しいことだと思う。 可変部分を抜き出すなら質問のようなのはダメは、始から判る。 (1)//の次から初めて (2)/の手前で終わる 部分の文字列を抜き出すで、質問者の場合は、ニーズが合うのか。 そこを明確にして質問するもんだ。 ーー データ例を誤解していたら、下記は約にたたず、無視して。 例データ A列 現データ  F,Gは,説明のための作業列  H列は結果 <a href="http://URL/" target="_blank"> 15 4 URL <a href="http://aaa.bbbb/" target="_blank"> 15 9 aaa.bbbb <a href="http://aa.cc.ddd/" target="_blank"> 15 10 aa.cc.ddd <a href="http://aaas/" target="_blank"> 15 5 aaas F1の式は =FIND("//",A1) 下方向に式を複写する G1の式は =FIND("/",MID(A1,F1+2,20)) 下方向に式を複写する H1の式は =MID(A1,F1+2,G1-1) 下方向に式を複写する 解説のためF,G,H列になっているが、H列の式で、F,Gの関数を組み込んでおく変えてください。 意味はF1は//が見つかる位置(何文字目) G1は//の位置の2文字先から/の位置を求める。

ROLLY617
質問者

補足

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

  • lostkid
  • ベストアンサー率42% (27/64)
回答No.2

ちょっと格好悪いですが、 B列に、=MID(A1,FIND("""",A1)+1,LEN(A1)) C列に、=LEFT(B1,FIND("""",B1)-1 ) D列に、=MID(B1,FIND("blank""",B1)+LEN("blank""")+1,LEN(B1)) E列に、=SUBSTITUTE(D1,"</a>","") C列がURL E列がサイト名 ※テキストエディタにコピペして、ワイルドカードで置換すると早いです。

ROLLY617
質問者

お礼

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

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

文字列の規則性がよくわかりませんが、以下の方法でいかがでしょう。 B1に =MID(A1,FIND("http:",A1,1),FIND(" target=",A1,1)-FIND("http:",A1,1)-1) C1に =MID(A1,FIND(" target=",A1,1)+17,FIND("</a>",A1,1)-FIND(" target=",A1,1)-17)

ROLLY617
質問者

お礼

ご回答ありがとうございました。 無事解決しました。 とても助かりました!

関連するQ&A