[[20210127073255]] 『1文字おきに伏字にしたい』(UNI) ページの最後に飛ぶ

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

 

『1文字おきに伏字にしたい』(UNI)

セルに入ってる顧客名を
顧客情報保護の観点から1文字おきに伏字(●)にしたく、
(全文字の50%は伏字にしたい)データが大量のため、手作業では困難なため、
関数で対処できないのか検討していますが、よいアイデアが浮かびません。
MID関数など良いかと思いましたが、そこから先のアイデアがありません。

例として、

株式会社 UNI食品販売
    ↓
●式●社●N●食●販●
●式●社 ●N●食●販●

このように●などで設定したいと思っています。
※株式会社と名前の間の空白は削除されても残っても構いません

VBAを利用しないで関数の組み合わせで対応できればと思っています。
よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


=MID(A1,1,1)&"●"& MID(A1,3,1)&"●"& MID(A1,5,1)&"●"& MID(A1,7,1)&"●"& MID(A1,9,1)&"●"& MID(A1,11,1)&"●"& MID(A1,13,1)&"●"
(mm) 2021/01/27(水) 09:33

 A1セルに元の文字があるとして、元の文字が最大20字までとして。
 =SUBSTITUTE(" "&TRIM(MID(A1,2,1)&" "&MID(A1,4,1)&" "&MID(A1,6,1)&" "&MID(A1,8,1)&" "&MID(A1,10,1)&" "&MID(A1,12,1)&" "&MID(A1,14,1)&" "&MID(A1,16,1)&" "&MID(A1,18,1)&" "&MID(A1,20,1))&" "," ","●")
 ではどうだろうか?
 なお、途中の空白は削除している。

 365だと
 =SUBSTITUTE(" "&TRIM(TEXTJOIN(" ",TRUE,MID(A1,ROW(1:10)*2,1)))&" "," ","●")
 で。
 これも最大20文字まで。
(ねむねむ) 2021/01/27(水) 16:03

mmさん
ありがとうございます。
早速試してみまして無事に伏字にできました。
ただ、元の文字数が少ない場合は、●が続いてしまいますので、
臨機応変に対応したいと思います。

ねむねむさん
ありがとうございます。
試させていただき、無事に伏字になりました。
365も別の端末で利用しているためやってみましたところ、
そちらでも対応できました。

お二人ともありがとうございました!
とても勉強になりました!
(UNI) 2021/01/27(水) 18:51


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.