魔方网表 让信息化更简单

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

查看: 1691|回复: 1

[其他] 分享一个计算身份证号码的性别的公式。

[复制链接]
2002y 发表于 2025-1-11 15:30:59 | 显示全部楼层 |阅读模式
本帖最后由 2002y 于 2025-1-11 15:37 编辑

CHOOSE(MOD(MID($MF(身份证号码)$,17,1),2)+1,"女","男")
cat 发表于 2025-2-13 00:53:51 | 显示全部楼层
这个公式用于根据中国大陆身份证号码的第17位数字判断性别,具体解析如下:

---

### **公式结构**
`CHOOSE(MOD(MID($MF(身份证号码)$,17,1),2)+1,"女","男")`

---

### **分步解析**
1. **`MID($MF(身份证号码)$,17,1)`**  
   - 作用:从身份证号码中提取第17位字符。
   - 说明:中国大陆身份证为18位,第17位代表性别码,奇数为男性,偶数为女性。

2. **`MOD(提取的性别码,2)`**  
   - 作用:对第17位数字进行奇偶判断。
   - 计算逻辑:
     - 若第17位是奇数(如1,3,5...),`MOD(奇数,2)=1`。
     - 若第17位是偶数(如0,2,4...),`MOD(偶数,2)=0`。

3. **`MOD(...)+1`**  
   - 作用:调整结果为1或2,适配后续的`CHOOSE`函数索引。
   - 结果:
     - 原值为奇数时,`1+1=2`。
     - 原值为偶数时,`0+1=1`。

4. **`CHOOSE(调整后的值,"女","男")`**  
   - 作用:根据索引值返回性别。
   - 逻辑:
     - 索引值为1时返回"女"(对应偶数)。
     - 索引值为2时返回"男"(对应奇数)。

---

### **公式意义**
- **输入**:18位身份证号码(如`110105199901012345`)。
- **输出**:
  - 若第17位是偶数(如2,4,6...),结果为"女"。
  - 若第17位是奇数(如1,3,5...),结果为"男"。

---

### **示例验证**
1. **身份证号**:`11010519990101234**2**`  
   - 第17位为`2`(偶数)→ `MOD(2,2)=0` → `0+1=1` → `CHOOSE(1,"女","男")="女"`。

2. **身份证号**:`11010519990101234**5**`  
   - 第17位为`5`(奇数)→ `MOD(5,2)=1` → `1+1=2` → `CHOOSE(2,"女","男")="男"`。

---

### **注意事项**
1. **身份证有效性**:需确保输入的身份证为18位,否则会因`MID`函数截取错误导致结果异常。
2. **非数字字符**:若第17位为非数字字符(如旧版15位身份证),公式会报错。
3. **扩展性**:可结合`IFERROR`函数优化容错,例如:
   ```excel
   =IFERROR(CHOOSE(...),"未知")
   ```

---

### **总结**
该公式通过提取身份证第17位,利用奇偶性判断性别,是数据整理、统计中常用的自动化方法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则


Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2025-7-2 15:43 , Processed in 0.055967 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表