• ベストアンサー

セルの中の文字すべてを特定の文字に置換するには?

エクセルでセルの中の文字すべてを特定の文字に置換するにはどうしたらよいでしょうか? 個人情報は伏せたいのですがそこに何文字あるのかわかるようにしたいのですが。 できれば全角・半角の違いで表示できると助かります(「?」「?」など)。 関数でできませんでしょうか?VBでないと無理でしょうか? (例) 教えて市教えて1番1号 オシエテマンション101号 (オシエテマンションは半角) ↓ ??????????? ????????????? この質問に補足する

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.2

作業用シートを(此処では Sheet2)を使用します。 添付図参照 Sheet1 のA列の文字数は最大で25文字の場合で説明します。 Sheet2 において、 1.セル A1 に次式を入力して、此れを右に24列(つまり、セル Y1 まで)ズズーッとドラッグ&ペースト    =IF(LENB(MID(Sheet1!$A1,COLUMN(A1),1))=2,"?",IF(LENB(MID(Sheet1!$A1,COLUMN(A1),1))=1,"?","")) 2.セル AA1 式 =Z1&A1 を入力して、此れを右に24列(つまり、セル AY1 まで)ズズーッとドラッグ&ペースト   なお、AA列の左の1列(此処ではZ列)は空白列にしておくこと 3.範囲 A1:AY1 を下方にズズーッとドラッグ&ペースト Sheet1 において、セル B1 に式 =Sheet2!AY1 を下方にズズーッとドラッグ&ペースト

pc6001_mar
質問者

お礼

図まで添付していただいてありがとうございます。関数でも可能なのですね。参考になりました。

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! お望みの関数ではなく、VBAになってしまいますが・・・ 一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) 尚、データはA1セルからあるとして、B列に表示するようにしています。 Sub test() 'この行から Dim i, k As Long Dim str, buf As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To Len(Cells(i, 1)) str = Mid(Cells(i, 1), k, 1) If str = " " Or str = " " Then str = str ElseIf LenB(StrConv(str, vbFromUnicode)) = 1 Then str = "?" Else str = "?" End If buf = buf & str Next k Cells(i, 2) = buf buf = "" Next i End Sub 'この行まで 参考にならなかったらごめんなさいね。m(_ _)m

pc6001_mar
質問者

お礼

ありがとうございました。参考になりました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

全角の文字が幾つで半角の文字が幾つあるかを求めることはできますがそれ以外はかなり難しいですね。どんな目的でこのような表示が必要なのでしょう。

pc6001_mar
質問者

お礼

個人情報を消してデータのなかにどういう文字があるのかを相手に伝えるためです。 ありがとうございました。

関連するQ&A