DGET 函数¶
函数概述¶
在 Excel 中,DGET 属于“数据库函数(Database Functions)”家族,用于在满足指定条件的记录中,提取某个字段的唯一值。 它的典型应用场景是:你的数据像一张“表”(包含表头),你希望像“按条件查询数据库”一样,返回某个字段对应的结果值。
需要注意的是:DGET 的定位是“必须且只能匹配到一条记录”。如果符合条件的记录为 0 条或多于 1 条,DGET 会返回错误(用于提醒你条件不够唯一或数据缺失)。
基础语法¶
参数说明¶
| 参数 | 必填 | 含义 | 典型写法/说明 |
|---|---|---|---|
database |
是 | 数据库区域(含表头的列表区域) | 例如 A1:D100,第一行必须是字段名 |
field |
是 | 要返回值的字段(列) | 可用字段名(如 "工资")或字段序号(如 4 表示 database 的第 4 列) |
criteria |
是 | 条件区域(含条件表头) | 至少包含一行表头 + 一行条件值,例如 F1:G2 |
关于 criteria(条件区域)的规则速记:
- 条件区域的表头必须与
database的字段名一致(同名匹配)。 -
条件区域中:
-
同一行多个条件是 AND(且)
- 不同行条件是 OR(或)
基础用法示范¶
下面用一个常见的员工表来演示 DGET 的核心用法。
示例数据¶
假设 A1:D8 是员工数据表(database):
| 员工ID | 姓名 | 部门 | 工资 |
|---|---|---|---|
| 1001 | 张三 | 销售 | 12000 |
| 1002 | 李四 | 销售 | 13500 |
| 1003 | 王五 | 研发 | 22000 |
| 1004 | 赵六 | 研发 | 24000 |
| 1005 | 钱七 | 财务 | 16000 |
| 1006 | 孙八 | 销售 | 12800 |
| 1007 | 周九 | 财务 | 16500 |
用法 1:按唯一条件查询某字段值(最常用)¶
需求:根据员工ID=1003,返回该员工的工资。
1)在 F1:F2 写条件区域(criteria):
| F列 |
|---|
| 员工ID |
| 1003 |
2)公式:
结果:22000
如果员工ID是唯一键,这类查询非常适合 DGET。
用法 2:field 使用列序号而非字段名¶
同样需求:根据员工ID=1003 返回工资。
在 A1:D8 中,“工资”是第 4 列,因此:
用法 3:多个条件 AND(同一行)¶
需求:查询 部门=销售 且 姓名=李四 的工资(确保唯一匹配)。
条件区域(F1:G2):
| F列 | G列 |
|---|---|
| 部门 | 姓名 |
| 销售 | 李四 |
公式:
结果:13500
用法 4:多组条件 OR(多行)¶
需求:查询(部门=财务 或 部门=研发)中,工资字段的唯一结果。 这种写法只有在 OR 合并后仍然只匹配到一条记录时才会成功。
条件区域(F1:F3):
| F列 |
|---|
| 部门 |
| 财务 |
| 研发 |
公式:
如果“财务”和“研发”各有多条记录,则会因为匹配到多条而报错;只有当 OR 条件合起来仍唯一,DGET 才会返回值。
用法 5:条件使用比较运算符¶
需求:查询 部门=研发 且 工资>23000 的员工姓名(确保唯一)。
条件区域(F1:G2):
| F列 | G列 |
|---|---|
| 部门 | 工资 |
| 研发 | >23000 |
公式:
结果:赵六(因为研发且工资>23000 只有 1004 一条)
用法 6:条件使用通配符¶
需求:查询姓名以“周”开头的员工部门(确保唯一)。
条件区域(F1:F2):
| F列 |
|---|
| 姓名 |
| 周* |
公式:
结果:财务
总结¶
- DGET = 数据库按条件“精确取值”函数:从满足条件的记录中,返回某字段的结果。
- 它的核心约束是:条件筛选后必须恰好命中一条记录,否则就会返回错误,用于强制你把条件写得更“唯一”。
database必须包含表头;criteria也必须包含与表头同名的条件字段名。- 条件组织规则很关键:同一行 AND,不同行 OR。
- 适用场景:用“员工ID/订单号/唯一编码”等唯一键快速回查某列值;或在多条件下仍能保证唯一匹配的查询。