[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『置換表を使って文字列の置換をしたい』(ほっかぽっか)
置換前と置換後の文字列が1列づつあるシートがあります。(置換表と呼びます)その行が50行あるとして、大きなスプレッドシート上で、その50通りの置換をしたいです。
Ctrl+Fから検索する文字列と置き換え後の文字列を入れて、すべて置換えボタンを押す行為を50回、人がやらなくても、せっかく置換表があるので50通りの置換をいっきにできないのでしょうか。
VBAは苦手なので、EXCELの標準機能でやれるとうれしいです。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
(19) 文字列置換
https://www.excel.studio-kazu.jp/DL/#q19
(参考) 2023/05/04(木) 22:14:53
> VBAは苦手なので、EXCELの標準機能でやれるとうれしいです。 このケースではそれに見合う標準機能はありません。
もっとも、 ・置換対象の文字列が縦一列に並んでいて、 ・その横の列に置換後の文字列を書き込む などということであれば、 「データテーブル」機能(昔は単に「テーブル」と言えばこちらだった)を使って、 文字列変換処理を多数のセルで繰り返すことができます。
置換処理(VBAで言えば、Replaceメソッド)を置換表の数だけ繰り返すということなので、 ここはマクロ(という標準的な機能)を使うべきでしょうね。 置換の結果をさらに置換するので、置換表の設定(指定順序とか)にも注意が必要ではないかと思います。
なお、(参考)さんの紹介されたものはユーザー定義関数なので、 「置換」とは違うことに注意が必要です。 対象シートとは別のシートに、対象セルの数だけユーザー定義関数を埋め込むことになりますので、 ひと手間かかります。 (置換表をその都度読み込んでいたりするので、置換対象が多数の場合は余り念頭に置かれていない ようですし、なぜReplace関数を使わないのかも少し不思議に思います。)
(xyz) 2023/05/05(金) 10:51:30
[置換表]
置換前 置換後
ABC あいう
DEF えおか
GHI きくけ
[作業シート]
A列 B列 C列
No 製品 数量
1 GHI製菓 17
2 (株)ABC 10
3 DEF食品 26
4 ABC電機 78
5 GHI商事 20
6 ABC協会 89
7 合同DEF 32
↓置換後は
[作業シート]
A列 B列 C列
No 製品 数量
1 きくけ製菓 17
2 (株)あいう 10
3 えおか食品 26
4 あいう電機 78
5 きくけ商事 20
6 あいう協会 89
7 合同えおか 32
(ほっかぽっか) 2023/05/06(土) 06:56:26
数式で行うのなら作業列を使用した方が楽かな? 対応表がSheet2のA1:B3に有るとして B2:置換前文字列位置 =MATCH(TRUE,ISNUMBER(FIND(Sheet2!A$1:A$3,A2)),0) C2:置換前文字列 =INDEX(Sheet2!A$1:A$3,B2) D2:置換後文字列 =INDEX(Sheet2!B$1:B$3,B2) E2:置換結果 =SUBSTITUTE(A2,C2,D2) (はてな) 2023/05/06(土) 08:46:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.