電子書籍の厳選無料作品が豊富!

こんにちは。
質問させていただきます。

https://www.**********.co.jp/shop
/C013/?source=abc&medium=def&campaign=ghr

というひとつのURLがA1のセルにあるとして、

A1セルの上記文字列の中から、以下の①、②、③を抜き出しB1、C1、D1のセルにぞれぞれ記入する関数を教えていただきたいです。
①source=の横のabcを抜き出したい
②medium=の横のdefを抜き出したい
③campaign=の横のghrを抜き出したい

どなたかわかる方がいたら、ご教授いただけると幸いです。
よろしくお願いいたします。

A 回答 (3件)

こんばんは!



一案です。
↓の画像のようにB1~D1セルに対象文字を入力しておきます。
画像ではB2セルに
=MID($A2,FIND(B$1,$A2)+LEN(B$1),FIND("#",SUBSTITUTE($A2,"&","#",COLUMN(A1)))-FIND(B$1,$A2)-LEN(B$1))

という数式を入れ隣りのC2セルまでコピー!

D2セルには
=RIGHT(A2,LEN(A2)-FIND(D$1,A2)-LEN(D$1)+1)

という数式を入れています。

※ エラー処理はしていません。m(_ _)m
「エクセル関数 特定の文字以降を抽出」の回答画像3
    • good
    • 0
この回答へのお礼

ありがとうございます!これで試してみます。

お礼日時:2017/04/24 21:50

B1、C1、D1セルでそれぞれ…


 source=の位置が文字列全体の先頭から何文字目にあるかをFIND関数やSEARCH関数で調べて、そこから更に7文字目から「&」までの長さを調べて、
 MID関数で切り出し。
 medium=の位置が文字列全体の先頭から何文字目にあるかをFIND関数やSEARCH関数で調べて、そこから更に7文字目から「&」までの長さを調べて、
 MID関数で切り出し。
 campaign=の位置が文字列全体の先頭から何文字目にあるかをFIND関数やSEARCH関数で調べて、そこから更に9文字目から最後までの長さを調べて、
 MID関数で切り出し。
…ですね。

面倒でしょうが、作業用の列をE列以降に作って1つずつ処理してみましょう。

・・・
試行錯誤は絶対に必要です。
    • good
    • 1

ご希望通りのB1、C1、D1には入りませんが。


考え方・やり方の一方法ですが、
「検索と置換」で「&」を「=」に全部置換する。
データタブの「区切り位置」で「カンマやタブなどの区切り文字によって…」を指定し、(次へ)
「区切り文字」の「その他」で『=』を指定し実行する。
B1にsource=の横のabcが出力
C1にmedium
D1にmedium=の横のdefが出力
E1にcampaign
F1にcampaign=の横のghrが出力
されます。
    • good
    • 0
この回答へのお礼

こういう方法もあるんですね。ありがとうございます

お礼日時:2017/04/24 21:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!