• ベストアンサー

あるケタの数字を別の文字列に変更するには?

下記の番号の3500 もしくは 4500 の番号を **** にして表示をしたい ただし、3500 4500は 何の数字になるかはわかりません。 要するに、この場所に来る数字を****に変更したいという事です。 場所とは、左から数字で数えて、12ケタ、13ケタ、14ケタ、15ケタ目です。 12-1234-12345-4500-1 12-1234-12345-5500-1 【エクセルバージョン】 2002

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

桁数が決まってるならREPLACE関数で左から15文字目から4文字を"****"に置き換える =REPLACE(A1,15,4,"****")

その他の回答 (3)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.4

>場所とは、左から数字で数えて、12ケタ、13ケタ、14ケタ、15ケタ目です。 >12-1234-12345-4500-1 桁位置に誤りがあるようです。 文字列の部分置換なので"-"も数に入れないと目的の結果になりません。 元の文字列がA1セルのとき下記の式で良いと思います。 =IF(LEN(A1)>18,REPLACE(A1,15,4,"****"),"") IF関数の論理式である LEN(A1)>18 は元の文字列が未入力や文字列の長さが足りないときにエラーとならないようにするためです。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、元データとなる番号がA1セルに入力されているものとします。  もし、番号の中で「****」に置換したい数字が、必ず、文字列の先頭から数えて15番目の文字から始まっていて、必ず4文字であると決まっている場合には、次の様な関数となります。 =IF(A1="","",IF(COUNTIF(A1,"??-????-?????-????*"),REPLACE(A1,15,4,"****"),"「置換できません」"))  又、もしも、「-」で区切られている各数字の桁数が、必ずしも「2桁-4桁-5桁-4桁-1桁」という形式と決まっている訳ではなく、それぞれの桁数が変化する事もあり得る場合において、「-」で区切られている数字の中の先頭から4番目に現れる数字を、その桁数と同じ回数だけ連続している「*」の繰り返し(例えば3桁なら「***」、6桁なら「******」)に置換する、という場合には、次の様な関数となります。 =IF(A1="","",IF(COUNTIF(A1,"*?-*?-*?-*"),LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),3)))&REPT("*",FIND(CHAR(1),SUBSTITUTE(A1&"-","-",CHAR(1),4))-FIND(CHAR(1),SUBSTITUTE(A1,"-",CHAR(1),3))-1)&REPLACE(A1,1,FIND(CHAR(1),SUBSTITUTE(A1&"-","-",CHAR(1),4))-1,),"「置換できません」"))

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>要するに、この場所に来る数字を****に変更したい =LEFT(A1,14)&"****"&RIGHT(A1,2) または =LEFT(A1,14)&"****"&MID(A1,19,99) 場所とは、左から「文字数」で数えて、15文字目からの4文字です。

関連するQ&A