Excel 中如何将 15 位身份证号转换为 18 位

假设A列自A2起是身份证号(15位或18位)。

1、身份证号全部改为18位,输入数组公式:
=IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLACE(A2,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A2)
注意:数组公式输入方法:输入公式后不要按回车,而是按Ctrl+Shift+Enter。

2、身份证号全部改为15位,输入公式:
=IF(LEN(A2)=15,A2,LEFT(REPLACE(A2,7,2,),15))

3、计算出生日期:
=IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")+0,)

4、判断性别:
=IF(A2<>"",IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女"),)

时间: 2024-10-04 16:58:46

Excel 中如何将 15 位身份证号转换为 18 位的相关文章

EXCEL规范数据输入教程-验证身份证号

EXCEL日常工作中经常会输入身份证号码,一不小心就可能出错,今天大飞老师就分享这样一个示例EXCEL规范数据输入教程-验证身份证号. 我们首先要保证在EXCEL中能正确输入身份证号码(PS:身份证号18位,直接输入就会变成科学计数法形式1.235E+17),可以通过两种方式.方式一:单引号+身份证号码如:'123456789111111111,方式二:先改变单元格类型为文本格式,然后再输入身份证号码. 我们要学习一个EXCEL函数LEN,可以返回字符的个数,我们填写一个身份证号码,通过LEN可

18位身份证号验证及信息获取

止乎于分享! IDCode18 = { validate: function (value) { if (value.length != 18) return false; var value = value.toLowerCase(); var sum = 0, v = '10x98765432', w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], a = '11,12,13,14,15,21,22,23,31,32,33,3

正则表达式之完美18位身份证号

匹配18位身份证号,正则表达式如下: /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|31)|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}([0-9]|x|X)$/ 说明:现在身份证号都已经是18位了,没必要再去考虑匹配15位. 18位身份证号组成:6位地区号+4位年+4位月日+3位编号+1位新生成编号 逻辑: 1

用DELPHI函数判断是否有效18位身份证号

uses DateUtils; const  IntMultiplication: Array[1..17] Of Integer=(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); //函数名:IsRightID//参数:sID,身份证号码 (输入)//      sSex,性别       (输出)//      age,年龄        (输出)//返回值:sID是标准身份证号,返回OK,否则返回相应信息function IsRightID(sID:string

正则表达式:邮箱格式和手机号(3-4位区号,7-8位直播号码,1-4位分机号)

<input type="text" id="uid" onblur="mail()"  />//文本框,实现失去焦点时触发判断邮箱或电话号码格式是否正确,正确不做反应,错误输出("用户名的邮箱或手机号格式不正确") function mail() { var patten2= new RegExp(/^[0-9|A-z|_]{1,17}[@][0-9|A-z]{1,3}.(com)$/) //邮箱正则表达式 va

判断身份证: 要么是 15 位, 要么是 18 位, 最后一位可以 为字母, 并写程序提出其中的年月日。

答: 我们可以用正则表达式来定义复杂的字符串格式, (\d{17}[0-9a-zA-Z]|\d{14}[0-9a-zA-Z])可以用来判断是否为合法的 15 位或 18 位身份证号码.因为 15 位和 18 位的身份证号码都是从 7 位到第 12 位为身份证为日期类型.这样我们可以设计出更精确的正则模式, 使身份证号的日期合法, 这样我们的正则模式可以进一步将日期部分的正则修改为[12][0-9]{3}[01][0-9][123][0-9], 当然可以更精确的设置日期.在 jdk 的 java.

PHP隐藏身份证号中间四位(适用老版15位与18位身份证号)

// $message['idcard'] 为数据库查出来的身份证号码,若位数不符合身份证位数则会显示“身份证位数不正常” <? echo strlen($message['idcard'])==15?substr_replace($message['idcard'],"****",8,5):(strlen($message['idcard'])==18?substr_replace($message['idcard'],"****",8,7):"身

Excel中使用MID函数获取身份证中的出生年月日

MID字符串函数,作用是从一个字符串中截取出指定数量的字符 MID(text, start_num, num_chars)   text被截取的字符 start_num从左起第几位开始截取(用数字表达)   num_chars从左起向右截取的长度是多少(用数字表达) 此例子是提取身份证号码中的出生年月日. A1单元格为522222199009091010 在B1单元格输入公式 =MID(A1,7,8) 被截取的字符串为A1单元格,从第七位开始向右截取8个数字. 得到出生年月日: 19900909

将身份证的15位号码升级为18位

Go --创建函数(此函数来自于csdn,作者不详) create function [dbo].[id15to18] (@id15 char(15)) returns char(18) as begin declare @id18 char(18) declare @s1 as integer declare @s2 as integer declare @s3 as integer declare @s4 as integer declare @s5 as integer declare @