[[20170811234933]] 『A列の文字列をB列から検索して同行のC列に置き換ax(鈴鹿) ページの最後に飛ぶ

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

 

『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

この程度であれば目視でよいのでは?
(MO) 2017/08/12(土) 17:46

 
そんなこと言わずに教えてください。
よく使う置換を効率化したいんです!!
 
(鈴鹿) 2017/08/12(土) 20:36

 これが近いんじゃないかと思うんですが、
 本件は、置換元を書き換えられたら手間が省けると思ってます。

 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.