
A列に7種類の文字(単語)が複数あり、その文字を数字に置換したいのですが、
当該シートには7種類の文字を表示させたくありません。
本対応を行いたい場合の関数について教えてください。
自身が考えた方法としては、同一の2シートをコピーで作成。
3シート目に検索用の文字とその右列にそれぞれ置換るための数字を準備。
1シート目のA列の文字と3シート目の検索用の文字で検索し、一致した場合に置換用の数字を
2シート目にA列に表示。(事前に2シートのA列の文字は削除する)
そして、1シート目と3シート目を非表示とする。
で、どうにか関数にできないかと試案してますが、上手くいきません。
シンプルな検索と置換ができれば良いのですが、どなたか教えてください。
SUBSTITUTE、IFなどどの関数を利用したらよいか悩んでおります。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
すごくバカげている方法ということになりますが、簡単な関数を繰り返し使うことでも、目的は達成出来るかもしれません。
オリジナルシートA列のセルに文字があるのを、別の文字や数値などに置き換えるのは、VLOOOKUP関数を使います。
7種の文字群を縦に並べ、隣に置換用文字数値を並べた表をつくり、その表に名前定義をします。
https://www.atmarkit.co.jp/ait/articles/1709/06/ …
オリジナルシートB列からE列(どこでも良いですけれど)に存在する7種の文字群をただ削除する場合には、SUBSTITUTE関数で、置換後を""に指定するだけですが、普通にやると、入れ子構造を使うことになります。それでもイイのですが、作業用に1つのシートをつくり、そこシートでは、第1の文字種の文字列だけを""に置換したものにします。 次に2つ目のシートをつくり、第2シートでは、第1シートから第2番目の文字種の文字列だけを""に置換したものにします。 次に3つ目のシートをつくり、第3シートでは、第2シートから第3番目の文字種の文字列だけを""に置換したものにします。 これを繰り返すと、7種でも、10種でも、指定文字列を""にすべて置換できます。
マクロを使った方が考えは楽ですが、とにかく関数だけでも、出来ます。

No.4
- 回答日時:
関数を使うのであれば、MATCH関数とINDEX関数を使い、置換する文字を決定してSUBSTITUTE関数で置換する。
という手順になります。
(MATCH関数とINDEX関数の組み合わせは、3シート目に対応表があるようなので、VLOOKUP関数やXLOOKUP関数で置き換えられます)
・・・
てか、「マクロの記録」は、手作業で行った置換の手順をマクロに置き換えるだけのものです。
質問者さんのようにマクロが分からない人向けの機能ですよ。
手作業で「置換」をする手順を一つずつ記録してマクロにしてくれるのです。
その結果が、前の回答で示したコードになります。
「マクロの記録」を ”記録開始” して、
「置換」機能を呼び出し、
1つ目の置換を行う。
2つ目の置換を行う。
3つ目の置換を行う。
…
7つ目の置換を行う。
「マクロの記録」を ”記録停止” する。
こんだけです。
記録したマクロを実行するだけで、何度でも同じ処理を行えます。
一度、ご自身で「マクロの記録」を行ってみると良いでしょう。
No.3
- 回答日時:
質問の状況がイメージにしにくいです。
❶ A列のセルには、「7種類の文字(単語)」の中のどれか1つが必ず入っているし、「7種類の文字(単語)」以外の文字などは入っていないのでしょうか。また1つのセルに、複数の「7種類の文字(単語)」が入っていることはないのでしょうか。
❷ 「当該シート」というのは、Sheet1が元データのあるシートだとした場合、そのSheet1とは別のシートであって、「当該シート」と「Sheet1」の見た目の違いが、A列にだけあって、「Sheet1」のA列は「7種類の文字(単語)」のみ、「当該シート」のA列は「7種類の文字(単語)を数字に置換したもの」のみということでしょうか。
❸ 「当該シートには7種類の文字を表示させたくありません」というのは、当該シートのB列、C列のどこかのセルの値か表示の中に、「7種類の文字(単語)」と見た目で合致する部分がある場合は、それを抹消するのでしょうか、あるいは、数字に置換するのでしょうか。
❹ 「当該シート」は、見た目や印刷したときだけ、条件が整っていれば、実態は参照式で構成されているものでも構わないのでしょうか。
ご質問ありがとうございます。
①どれか一つがかならず入っております。それ以外の文字は入っていません。また、複数の文字も入っていません。
②その通りです。
③抹消または数字置換どちらでも結構です。
当該シートに7種類の文字(単語)の情報を載せらないのです。
④構いません。
よろしくお願い致します。
No.2
- 回答日時:
one → 1
two → 2
three → 3
four → 4
five → 5
six → 6
seven → 7
とかかな?
7つだけなら、7回「置換」をすれば良いだけです。
たったの7回だよ。ホームリボンの「編集」の「検索と置換」から「置換」を選んで操作するだけです。
(Ctrl+Hで直接呼び出しても良い)
難しく考えて時間を浪費するよりも、遥かに短い時間で対処できます。
後から何度も繰り返し処理を行う必要があるなら、「マクロの記録」でマクロ化してしまえば、後は楽。
必要に応じてマクロを呼び出せば良い。
ちなみにマクロ化すると、
/***
Sub Macro1()
'
' Macro1 Macro
'
'
Cells.Replace What:="one", Replacement:="1", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False _
, FormulaVersion:=xlReplaceFormula2
Cells.Replace What:="two", Replacement:="2", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False _
, FormulaVersion:=xlReplaceFormula2
Cells.Replace What:="three", Replacement:="3", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Cells.Replace What:="four", Replacement:="4", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Cells.Replace What:="five", Replacement:="5", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Cells.Replace What:="six", Replacement:="6", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False _
, FormulaVersion:=xlReplaceFormula2
Cells.Replace What:="seven", Replacement:="7", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub
***/
こんな感じになる。
コマンドの意味なんて考えなくても、
作業手順がそのままマクロになるって事が分かれば良い。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- Excel(エクセル) 数式の置換がうまく行かない 6 2022/05/04 15:51
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワード:文字を修正したら別の...
-
ランダムに単語をカッコにでき...
-
秀丸で余分なスペースを削除したい
-
エクセルで文字を置き換えるには
-
ワードでの文字変換
-
ワイルドカードを使って置換(...
-
複数のワードファイルの一括置...
-
Excelで空白を取り除く方法(97...
-
カンマ( , )をタブに置換したい。
-
文字列に含まれているダブルク...
-
半角のアスタリスク*
-
エクセルについて
-
テキスト内の特定の文字をTABス...
-
秀丸エディタで「-」や「ー」を...
-
エクセル 英数字の後のハイフ...
-
word 改行マークを印刷時に表示...
-
Flexible Renamer 置き換えの使...
-
エクセル2003で特殊文字の置換方法
-
ワード (word ) 日本語の文字...
-
一括置換ソフトTTextSS 3.20に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマを改行に変換する方法
-
カンマ( , )をタブに置換したい。
-
エクセル重複削除で綺麗に削除...
-
文字列に含まれているダブルク...
-
文字の列を揃えるには
-
秀丸で余分なスペースを削除したい
-
Excelで全角ハイフンを半角ハイ...
-
エクセルの『検索と置換ボック...
-
Word:差し込み印刷時に文字列...
-
セルの文字列後ろのスペース削除
-
エクセルで濁点カナの変換方法...
-
CSVファイルの任意の列をダブル...
-
1文字だけ置換したい
-
word 改行マークを印刷時に表示...
-
エクセルでコンマとピリオドを...
-
ワード (word ) 日本語の文字...
-
Word VBA フッターでの文字の置換
-
エクセル 置換又は関数でかっこ...
-
テキストでタブを検索してスペ...
-
【MS Office Word 2007】文章の...
おすすめ情報