[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『A列の文字列をB列から検索して同行のC列に置き換える方法、』(鈴鹿)
宜しく御願い致します。 以下のようなA列があります。
------------------------------- A列 sony アップル デル パナソニック amazon apple --------------------------------
A列の文字列を以下のB列の文字列で検索して、 該当する文字列があった場合は、同業のC列に置き換える方法を教えてください。
-------------------------------- B列 C列 amazon ネット デル 企業向け sony 個人 --------------------------------
置換え後は以下の様に表示させたいです。 ------------------------------- A列 個人 アップル 企業向け パナソニック ネット apple --------------------------------
< 使用 Excel:Excel2016、使用 OS:Windows7 >
作業セル例えば、D1に =IF(ISNA(VLOOKUP(A1,$B$1:$C$3,2,0)),A1,VLOOKUP(A1,$B$1:$C$3,2,0)) を入れ下にフィル。 これらD1〜D?の範囲をコピーして、A1に値だけ貼り付け。
(BJ) 2017/08/12(土) 02:45
参考にさせてもらいます。
他によい方法ないでしょうか。
置換を一個ずつ使う方法以外を沢山知っておきたいです。 (鈴鹿) 2017/08/12(土) 13:28
これが近いんじゃないかと思うんですが、 本件は、置換元を書き換えられたら手間が省けると思ってます。
Sub Sample1() Dim i As Long, k As Long, wS1 As Worksheet, wS2 As Worksheet Set wS1 = Worksheets("data") Set wS2 = Worksheets("reference") Application.ScreenUpdating = False For i = 1 To wS1.Cells(Rows.Count, "A").End(xlUp).Row For k = 1 To wS2.Cells(Rows.Count, "A").End(xlUp).Row If InStr(wS1.Cells(i, "A"), wS2.Cells(k, "A")) > 0 Then wS1.Cells(i, "A") = Replace(wS1.Cells(i, "A"), wS2.Cells(k, "A"), wS2.Cells(k, "B")) End If Next k Next i Application.ScreenUpdating = True End Sub
https://oshiete.goo.ne.jp/qa/8293972.html
(鈴鹿) 2017/08/12(土) 23:05
Sub test() Dim r As Range For Each r In Range("b1", Range("b" & Rows.Count).End(xlUp)) Columns(1).Replace r.Value, r(, 2).Value, 1 Next End Sub ( seiya) 2017/08/12(土) 23:12
ブラボーです。 ありがとうございます。
たった6行とは思いませんでした・・・。 (鈴鹿) 2017/08/12(土) 23:51
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.