DGET从数据库区域中返回满足条件的某个字段,但前提是匹配结果恰好一条。它适合编号、日期和状态共同确定唯一记录的表格;若可能返回多条,应改用FILTER。
DGET的结果数量规则
| 匹配数量 | 返回结果 |
|---|---|
| 正好1条 | 返回指定字段的值。 |
| 0条 | 返回找不到记录的错误。 |
| 超过1条 | 返回数字错误,提示条件不能唯一定位。 |
| 需要全部匹配行 | 使用FILTER,不应压成一个DGET结果。 |
建立与表头一致的条件区域
- 确认数据库首行字段名
编号、日期、状态等标题必须唯一,数据区域包含完整表头。
- 复制条件标题
条件区域标题要与数据库字段逐字一致,下一行填写条件值;同一行代表AND,不同行代表OR。
- 指定返回字段
第二参数可以写字段标题文字,也可以写列序号,标题文字更便于表结构变化后维护。
- 验证唯一性
先用筛选查看条件实际命中几行,再让DGET返回字段,避免用IFERROR掩盖重复记录。
查询某项目某月份的负责人
数据库字段为项目编号、月份、状态、负责人。条件区域同一行填写项目P023、月份2026-07、状态有效,只命中一条时DGET返回负责人。
如果同一项目同月存在两条有效记录,DGET报错是有价值的异常信号。应先确认是否重复录入或业务允许多负责人,不能直接取第一条。
出现错误时逐项核对
- 条件标题与数据库标题没有空格或字符差异。
- 日期条件是真实日期而非外观相同的文本。
- 数据库区域包含标题且没有漏掉新增行。
- 多个匹配是数据规则问题还是条件遗漏已经说明。
DGET适合“业务上必须唯一”的查找。它对多结果报错反而能暴露数据异常;当需求本身允许多行时,应选择能返回数组的函数。
常规多条件返回单值可先比较Excel多条件查找公式:按区域和城市返回客户名称;条件允许一对多时,使用Excel FILTER筛选全部匹配项:一个编号返回多条记录比强行让DGET成功更合理。