[[20180607111108]] 『URLの中で一致する文字列を検索し、対応する値を刀x(黒猫) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『URLの中で一致する文字列を検索し、対応する値を入れたい』(黒猫)

URLの中にある文字列と、文字列の対応表があります。
下の図のようにURLの中で一致する文字列を検索し、対応する値を入れたいです。

                  ↓この列に「大阪」「愛媛」が入れたい
http://xxxxxxxxxxxxxx/ehime/xxx|  |
http://xxxxxxxxxxxxxx/osaka/xxx|  |

|osaka|大阪|
|ehime|愛媛|

VLOOKを使用して、以下の状態のように、検索の値を別列に書き出してから判定する方法でも構いません。

                     ↓この列に対応内容が入る
http://xxxxxxxxxxxxxx/ehime/xxx|ehime| |
http://xxxxxxxxxxxxxx/osaka/xxx|osaka| |

よろしくお願いします

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 どの列の何行目にあるのか、わかるように書きましょう。

 元のURLがA1から下
 対応表がD1:E10
 検索結果をB列に表示

 だとして

 B1 =IFERROR(LOOKUP(1,0/(FIND("/"&$D$1:$D$10&"/",A1)*($D$1:$D$10<>"")),$E$1:$E$10),"")

 下コピー

 こういうこと?
(笑) 2018/06/07(木) 11:42

マクロ案なぞ。元URLはSheet1のA1セルから、変換候補はSheet2のA1セルからに並んでいるものとします。

 Sub test()
    Dim wk1 As Worksheet
    Dim wk2 As Worksheet
    Dim i As Long
    Dim j As Long
    Dim jMax As Long

    Set wk1 = Sheets("Sheet1")
    Set wk2 = Sheets("Sheet2")
    jMax = wk2.Cells(wk2.Rows.Count, "A").End(xlUp).Row

    For i = 1 To wk1.Cells(wk1.Rows.Count, "A").End(xlUp).Row
        For j = 1 To jMax
            If 0 < InStr(wk1.Cells(i, "A").Value, wk2.Cells(j, "A").Value) Then
                wk1.Cells(i, "B").Value = Replace(wk1.Cells(i, "A").Value, wk2.Cells(j, "A").Value, wk2.Cells(j, "B").Value)
                Exit For
            End If
        Next j
        If jMax < j Then
            wk1.Cells(i, "B").Value = wk1.Cells(i, "A").Value
        End If
    Next i
 End Sub
(???) 2018/06/07(木) 12:48

 一応、確認。

 元のURLは、/ehime/ とか /osaka/ の部分以外は全部同じ?

 以上です
(笑) 2018/06/07(木) 13:28

 こんなのでもいいのだろうか?
 =IFERROR(VLOOKUP(TRIM(MID(SUBSTITUTE(A1,"/",REPT(" ",100)),300,100)),D$1:E$10,2,FALSE),"")

 TRIM(MID(SUBSTITUTE(A1,"/",REPT(" ",100)),300,100))
 で、3個目の/と4個目の/の間の文字を求めている。
(ねむねむ) 2018/06/07(木) 13:49

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.