10/24/2016

Excel。Asterisk。文字を伏字にしたいのですが、いい方法はありませんか?


Excel。文字を伏字にしたいのですが、いい方法はありませんか?

<LEFT関数+REPT関数+LEN関数>


ちょっとしたご質問だったのですが、あまり使わない関数の組み合わせだったので、
それを今回はご紹介していきます。

ただ、タイトルだけでは、なんだかわかりにくいので、次の表をご覧ください。

A列に氏名が入力されていて、そのままではオープンな資料として使えないので、
氏名の一文字目はそのままで、
それ以降は、残りの文字数分を【伏字】にしたいということをやりたいわけなんですね。

今回は伏字で全角の”*”を使っておりますが、
この伏字の数が決まっているならば、LEFT関数との文字結合で、完成しますが、
今回厄介なのは、文字数が違うということ。

ということは、
その最初の一文字目を除いて数えてあげる必要があります。

そして、その文字数分を伏字にしないといけないということ。
なので、REPLACE関数も使いにくいのです。

このような場合、Excelのベテランさんならともかく、Excelがもう少しと思っている方などは、
一つずつ区切って数式を作成していき、
最終的に合体させるほうがわかりやすいと思いますので、
E列以降を使って確認していきましょう。

E列には、最初の一文字目を抽出していきましょう。

左側から一文字ですから、LEFT関数を使います。

E3をクリックして、LEFT関数ダイアログボックスを表示しましょう。

文字列は、A3
文字数は、1
としてOKボタンをクリックしましょう。オートフィルで数式をコピーしましょう。
E3の数式は、

=LEFT(A3,1)


最初の一文字目を抽出できましたね。

続いて、F列。
ここは、先に文字数を数える関数を設定していきます。
文字数を数える関数は、LEN関数ですね。

F3をクリックしてLEN関数ダイアログボックスを表示しましょう。

文字列には、A3
と入力して、OKボタンをクリックしましょう。

今、F3の数式は、
=LEN(A3)となっていますね。
今回は、この文字数から-1(マイナス1)した数をふせじにするので、
数式を=LEN(A3)-1と修正します。

それでは、オートフィルで数式をコピーします。

このF列で算出した数値の回数を繰り返して伏字である、”*”を作りますので、
ここは、REPT関数が登場します。

G3をクリックしてREPT関数ダイアログボックスを表示しましょう。

文字列には、”*”
繰り返し回数には、F3
として、OKボタンをクリックしましょう。オートフィルで数式をコピーします。

G3の数式は、

=REPT("*",F3)

あとは、E3とG3を結合させてあげればいいので、C3には、

=E3&G3

とすれば、完成ですね。

なお、E列~G列までの作業列を使わないで、一発で数式を作るのでしたら、
C3に、

=LEFT(A3,1)&REPT("*",LEN(A3)-1)

という数式を設定してあげれば、作成することが出来ますよ。