这个公式用于根据中国大陆身份证号码的第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位,利用奇偶性判断性别,是数据整理、统计中常用的自动化方法。 |