# 受试者统计表中几个常用的Excel公式


在项目开始招募后，需要将接收到各个渠道报名的受试者基本信息录入Excel表中

一般需要录入下列这些信息即可，为了减少工作量，可以将受试者的`姓名`、`电话`、`身份证`录入，其他信息通过公式计算得出

| 序号 | 姓名 | 性别 | 年龄 | 身高(CM) | 体重(KG) | BMI  |   手机号    |      身份证号      | 推荐人 | 备注 |
| :--: | :--: | :--: | :--: | :------: | :------: | :--: | :---------: | :----------------: | :----: | :--: |
|  1   | 张三 |      |      |   180    |    80    |      | 13888888888 | 411328198808083888 |  李四  |      |

#### 获取性别

思路为通过身份证号倒数第二位数字的奇偶来判断性别

```vbscript
IF(MOD(MID(I2, 17 , 1), 2), "男", "女"）
```

- **MID函数**从左指定位置开始截取指定位数的文本串，用于获取身份证倒数第二位的数字

  ```vbscript
  MID(text, start_num, num_chars)
  ```

- **MOD函数**返回两数相除的余数，用于判断倒数第二位奇偶

  ```vbscript
  MOD(number, divisor)
  ```

  如果结果为 0，则 MOD 返回 #DIV/0!

- **IF函数**对值进行比较，用来获取“男”或“女”

  ```vbscript
  IF(logical_test, value_if_true, [value_if_false])
  ```

  如果条件为真，该函数将返回第一个值；如果条件为假，函数将返回另一个值

#### 获取年龄

先得到出生日期再做年龄计算。因为是粗略计算，只需要精确到年份即可

```vbscript
YEAR(NOW())-MID(I2,7,4)
```

- `YEAR(NOW())`可以得到当前年份

#### 获取BMI

BMI计算公式为**体重/身高<sup>2</sup>**

```vbscript
ROUND(F2/(E2*E2/10000), 1)
```

用`ROUND`函数将计算出的结果四舍五入到一位小数

#### 其他

考虑到项目入排标准有年龄、BMI要求，可以增加判定条件

- 年龄未介于18-45时
- 体重低于45Kg或BMI未介于19-26时
- 电话和身份证设置位数判断

出现问题时，二次确认并提醒受试者


