具有多个(复合)键的 DGET returns #NUM!错误

DGET with multiple (compound) keys returns #NUM! error

多条件键的DGET函数逻辑是什么? 我做了两个小例子来研究:

情况 1: 我们仅通过 Date 类型键获取值 - 它工作正常。

情况2:相同的数据,但我们添加了一个String类型的key。这里有一个错误!

我同意,B 列(“Инв”字段)中有 2 个“М000001735”字符串。但在这种情况下,还有 2 个键可以获取唯一的行。怎么了?我可以将 DGET 函数 用于复合键 吗?

如果 OP 解释他们正在努力实现的目标(以及他们遇到的问题,以及在哪里,文本格式的数据样本等),这会有所帮助。

请尝试:

=DGET(A:C;"Рабочее место";{{"Инв";"M00001735"}\{"Дата";DATE(2019;2;15)}})

您的 'default' 分隔符是 ; 因此在您的情况下这不用于水平堆叠数组。

table 应该 包含任何重复项。如果有重复项,您应该使用可以在 DGET 中使用的 UNIQUESORT 函数将其删除。因为如果有多个匹配,DGET会return出错。如果条件不匹配,DGET 公式 returns #VALUE! 错误。所以你应该用 IFERROR 包裹 Google Sheets DGET 公式。 criteria/lookup 列中不允许重复。这会导致 DGET.

中的 #NUM! 错误

如果你运行:={{1;2}\{3;4}}

或运行这个星座:={{1};{2}}

你会得到相同的结果,这意味着其中任何一个都可以工作:

=DGET(A:C; "Рабочее место"; {{"Инв" \ "Дата"}; {"М000001735" \ DATE(2019; 2; 15)}})

=DGET(A:C; "Рабочее место"; {{"Дата"; "Инв"}; {DATE(2019; 2; 15); "М000001735"}})

=DGET(A:C; "Рабочее место"; {{"Инв"; "М000001735"} \ {"Дата"; DATE(2019; 2; 15)}})

demo spreadsheet

注意:确保您在电子表格设置中使用俄语语言环境

_____________________________________________________________

替代DGET

=QUERY(A:C; "select C where A = date '2019-2-15' and B = 'М000001735'"; 0)

=FILTER(C:C; A:A=DATE(2019; 2; 15); B:B="М000001735")

=VLOOKUP(VLOOKUP(DATE(2019; 2; 15); A:B; 2; 0); B:C; 2; 0)