带有多个条件键的DGET函数的逻辑是什么? 我举了两个小例子来研究:
情况1:,我们仅通过“日期”类型键获得一个值-很好。
情况2:,但我们添加了String类型的键。这里我们有一个错误!
我同意,列B(“Инв”字段)中有2个“М000001735”字符串。但是在这种情况下,还有2个键可以获取唯一行。怎么了?可以使用DGET函数用于复合键吗?
答案 0 :(得分:0)
如果OP解释了他们要实现的目标(以及遇到的问题以及在何处以文本格式进行数据采样等),将会很有帮助。
请尝试:
=DGET(A$1:C;"Рабочее место";{{"Инв";"M00001735"}\{"Дата";DATE(2019;2;15)}})
您的“默认”分隔符为;
,因此在您的情况下,这不能用于水平堆叠数组。
答案 1 :(得分:0)
该表应不包含任何重复项。如果有重复项,则应使用UNIQUE
中可以使用的SORT
或DGET
函数将其删除。因为如果有多个匹配项,DGET
将返回错误。如果条件不匹配,则DGET
公式将返回#VALUE!
错误。因此,您应该使用DGET
包装Google表格IFERROR
公式。 “条件/查找”列中不允许重复。这会导致#NUM!
中的DGET
错误。
如果您运行:={{1;2}\{3;4}}
或运行以下星座:={{1\3};{2\4}}
您将获得相同的结果,这意味着其中任何一个都将起作用:
=DGET(A:C; "Рабочее место"; {{"Инв" \ "Дата"}; {"М000001735" \ DATE(2019; 2; 15)}})
=DGET(A:C; "Рабочее место"; {{"Дата"; "Инв"}; {DATE(2019; 2; 15); "М000001735"}})
=DGET(A:C; "Рабочее место"; {{"Инв"; "М000001735"} \ {"Дата"; DATE(2019; 2; 15)}})
注意:请确保您在电子表格设置中使用俄语语言环境
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)