具有多个(复合)键的 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
中使用的 UNIQUE
或 SORT
函数将其删除。因为如果有多个匹配,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)
多条件键的DGET函数逻辑是什么? 我做了两个小例子来研究:
情况 1: 我们仅通过 Date 类型键获取值 - 它工作正常。
情况2:相同的数据,但我们添加了一个String类型的key。这里有一个错误!
我同意,B 列(“Инв”字段)中有 2 个“М000001735”字符串。但在这种情况下,还有 2 个键可以获取唯一的行。怎么了?我可以将 DGET 函数 用于复合键 吗?
如果 OP 解释他们正在努力实现的目标(以及他们遇到的问题,以及在哪里,文本格式的数据样本等),这会有所帮助。
请尝试:
=DGET(A:C;"Рабочее место";{{"Инв";"M00001735"}\{"Дата";DATE(2019;2;15)}})
您的 'default' 分隔符是 ;
因此在您的情况下这不用于水平堆叠数组。
table 应该不 包含任何重复项。如果有重复项,您应该使用可以在 DGET
中使用的 UNIQUE
或 SORT
函数将其删除。因为如果有多个匹配,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)