Microsoft Access 如何将数值分类转换为 A–E?
数据小陈
结论
如果 Round([chance]/20) 的结果已经在 1 到 5 之间,可以用 Access 的 Chr() 将数字转换为对应的大写字母:
Chr(64 + Round([chance]/20))
Chr() 根据字符编码返回字符。大写字母 A 到 E 的编码依次为 65 到 69,所以分类值 1 加 64 得到 A,分类值 5 加 64 得到 E。这个表达式可以直接用作查询的计算字段,无需另建字符变量。
如果要把 1 到 100 分成五个等宽区间
原表达式 Round([chance]/20) 不会严格按每 20 个数分为一组。Round() 会按舍入规则处理边界,低于 10 的值还可能得到 0。如果 [chance] 是 1 到 100 的整数,且要让 1 到 20 对应 A、21 到 40 对应 B,依此类推,可以使用:
Chr(65 + Int(([chance]-1)/20))
这里先用 Int() 计算区间编号,再加 65 得到对应字母。按这个表达式,1 到 20 返回 A,21 到 40 返回 B,41 到 60 返回 C,61 到 80 返回 D,81 到 100 返回 E。
使用前检查
- 如果现有表达式只返回 1 到 5,使用
Chr(64 + Round([chance]/20))。 - 如果要按 1 到 20、21 到 40 等固定范围分组,且
[chance]是 1 到 100 的整数,使用Chr(65 + Int(([chance]-1)/20))。 - 确认输入范围符合所选表达式的前提,否则结果可能超出预期范围。
备注:内容仅供参考。
