跳转至

DGET 函数

函数概述

在 Excel 中,DGET 属于“数据库函数(Database Functions)”家族,用于在满足指定条件的记录中,提取某个字段的唯一值。 它的典型应用场景是:你的数据像一张“表”(包含表头),你希望像“按条件查询数据库”一样,返回某个字段对应的结果值。

需要注意的是:DGET 的定位是“必须且只能匹配到一条记录”。如果符合条件的记录为 0 条或多于 1 条,DGET 会返回错误(用于提醒你条件不够唯一或数据缺失)。


基础语法

=DGET(database, field, criteria)

参数说明

参数 必填 含义 典型写法/说明
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)公式:

=DGET(A1:D8, "工资", F1:F2)

结果:22000

如果员工ID是唯一键,这类查询非常适合 DGET。


用法 2:field 使用列序号而非字段名

同样需求:根据员工ID=1003 返回工资。 在 A1:D8 中,“工资”是第 4 列,因此:

=DGET(A1:D8, 4, F1:F2)

用法 3:多个条件 AND(同一行)

需求:查询 部门=销售 且 姓名=李四 的工资(确保唯一匹配)。

条件区域(F1:G2):

F列 G列
部门 姓名
销售 李四

公式:

=DGET(A1:D8, "工资", F1:G2)

结果:13500


用法 4:多组条件 OR(多行)

需求:查询(部门=财务 部门=研发)中,工资字段的唯一结果。 这种写法只有在 OR 合并后仍然只匹配到一条记录时才会成功。

条件区域(F1:F3):

F列
部门
财务
研发

公式:

=DGET(A1:D8, "工资", F1:F3)

如果“财务”和“研发”各有多条记录,则会因为匹配到多条而报错;只有当 OR 条件合起来仍唯一,DGET 才会返回值。


用法 5:条件使用比较运算符

需求:查询 部门=研发 且 工资>23000 的员工姓名(确保唯一)。

条件区域(F1:G2):

F列 G列
部门 工资
研发 >23000

公式:

=DGET(A1:D8, "姓名", F1:G2)

结果:赵六(因为研发且工资>23000 只有 1004 一条)


用法 6:条件使用通配符

需求:查询姓名以“周”开头的员工部门(确保唯一)。

条件区域(F1:F2):

F列
姓名
周*

公式:

=DGET(A1:D8, "部门", F1:F2)

结果:财务


总结

  • DGET = 数据库按条件“精确取值”函数:从满足条件的记录中,返回某字段的结果。
  • 它的核心约束是:条件筛选后必须恰好命中一条记录,否则就会返回错误,用于强制你把条件写得更“唯一”。
  • database 必须包含表头;criteria 也必须包含与表头同名的条件字段名。
  • 条件组织规则很关键:同一行 AND,不同行 OR
  • 适用场景:用“员工ID/订单号/唯一编码”等唯一键快速回查某列值;或在多条件下仍能保证唯一匹配的查询。