这两天,在帮区里作信息技术中考的报名工作。
 
其中有一项是学生的×××号码。
 
本来没什么特别的,偏偏有人作错了一些,所以出了意外。
 
先来了解一下,EXCEL的一个特性吧!
 
Excel中,如果数值型的数据超过11位,就会使用科学记数法,超过15位,则多余的位数为0
 
由于这个特性,我们在输入×××号时,不管是15位或是18位,都会以科学记数法来记录。
 
这时,我们要将数据列设置为“文本”才能正确显示。
 
这并没什么,可是有一个老师在对数据编辑时,出现了一个问题。
 
他将EXCEL表中的所有1替换成了A,2替换成了B,3替换成了C。
 
那么,有些人会说,再替换回来就OK了。
 
 
但是,在对×××号 数据列替换时,会出现这个现象。
 
 替换完成后,单元格格式虽然是文本,但×××号,会呈现科学记数状态。
 
 
无奈之下,将×××号 列,分成两列,然后完成替换。
 
再使用c1=a1&b1
 
这种方法,将内容合并 。
 
操作不算复杂,但我想应该有更好的办法。
 
 
于是,给ExcelHome 的Kevin ZHOU(周庆麟)发了邮件进行请教。
 
回复,用到了SUBSTITUTE函数。
 
因为,平时很少用函数,加上,想从格式上入手解决这个问题,所以有点越走越远的感觉 。
 

SUBSTITUTE 函数

在文本字符串中用 new_text 替代 old_text。如果需要在某一文本字符串中替换指定的文本,请使用函数 SUBSTITUTE;如果需要在某一文本字符串中替换指定位置处的任意文本,请使用函数 REPLACE。

SUBSTITUTE(text, old_text, new_text, [instance_num])

  • Text    必需。需要替换其中字符的文本,或对含有文本(需要替换其中字符)的单元格的引用。
  • Old_text    必需。需要替换的旧文本。
  • New_text    必需。用于替换 old_text 的文本。
  • Instance_num    可选。用来指定要以 new_text 替换第几次出现的 old_text。如果指定了 instance_num,则只有满足要求的 old_text 被替换;否则会将 Text 中出现的每一处 old_text 都更改为 new_text。
 
为了避免×××号泄露隐私,以学籍号为例。
 
所以在我的案例中,如果单一的替换可以
 
C2=SUBSTITUTE(B2,"A",1)
 
 
复杂的替换可以
 
C2=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,"A",1),"B",2),"C",3)
 
 
 
 
这种应用 函数的替换操作不会导致×××号变为科学记数法。
 
 
 
 
感谢 Kevin,也希望对大家有帮助。