如何找出Google Sheet 查询#N/A 错误(仅在打开时)
How to figure out Google Sheet query #N/A error(only when open)
我有两个 sheets:一个 listing sales(名为“Aug”表示八月)和一个 listing 产品信息(名为“PRef”)。
https://docs.google.com/spreadsheets/d/1eFXblUjEeusJOXU6bLSu922RnhEs45NZVJm8hM-pXdw/edit?usp=sharing
从上面的 link 中,当我打开 E 列中的 sheet 时出现错误。如果我删除相同的值并将相同的值填充到相同的单元格,则公式有效,所以我的公式是正确的.我怎样才能弄清楚?太烦人了
我的查询:
=QUERY(Pref,"select C where A like "&C2&" and B like "&D2&" limit 1",0)
在您的查询中,使用 PRef.!A:C
.
而不是 PRef
使用 arrayformula
和 lookup
代替所有 query
可能更有效。
在单元格 E2
中尝试此操作(删除 E2
下面的所有内容):
=arrayformula(if(C2:C<>"",vlookup(C2:C&"|"&D2:D,{PRef.!A:A&"|"&PRef.!B:B,PRef.!C:C},2,0),))
你也可以在没有匹配的时候加一个iferror
:
=arrayformula(if(C2:C<>"",iferror(vlookup(C2:C&"|"&D2:D,{PRef.!A:A&"|"&PRef.!B:B,PRef.!C:C},2,0),"Not found"),))
您的查询有两个错误:
- 您的 sheet 名称有一个句点:它是“PRef.”,而不是“PRef”,因此请更改 sheet 或数据调用行的名称。
- 您忘记调用要从中收集数据的列。将其更改为
=QUERY(PRef.!A:E
会产生所需的结果,如图所示。
那些讨厌的缺失标点符号总是会导致错误,所以最好避免这种情况发生的可能性。
查询格式为=QUERY([datasheet]![data area]
。如果忘记定义数据区,查询就不知道从哪里收集数据。
编辑 2021 年 8 月 10 日
我再次查看了您的数据库,并尝试稍微调整一下查询。不知道为什么,Google Sheets好像不太喜欢like
;改为 =
,完全解决了问题。
=QUERY(GoodsList,"select C where A = "&C2&" and B = "&D2&" limit 1",0)
我把有商品的区域重命名为GoodsList,所以我可以简单地引用它。除此之外,唯一的区别是我用等号替换了 like
并删除了不必要的单引号。屏幕截图:
请注意 limit 1
是绝对必要的,否则您将收到 #Ref
错误,因为它正在尝试写入由查询命中填充的单元格。
我有两个 sheets:一个 listing sales(名为“Aug”表示八月)和一个 listing 产品信息(名为“PRef”)。
https://docs.google.com/spreadsheets/d/1eFXblUjEeusJOXU6bLSu922RnhEs45NZVJm8hM-pXdw/edit?usp=sharing
从上面的 link 中,当我打开 E 列中的 sheet 时出现错误。如果我删除相同的值并将相同的值填充到相同的单元格,则公式有效,所以我的公式是正确的.我怎样才能弄清楚?太烦人了
我的查询:
=QUERY(Pref,"select C where A like "&C2&" and B like "&D2&" limit 1",0)
在您的查询中,使用 PRef.!A:C
.
PRef
使用 arrayformula
和 lookup
代替所有 query
可能更有效。
在单元格 E2
中尝试此操作(删除 E2
下面的所有内容):
=arrayformula(if(C2:C<>"",vlookup(C2:C&"|"&D2:D,{PRef.!A:A&"|"&PRef.!B:B,PRef.!C:C},2,0),))
你也可以在没有匹配的时候加一个iferror
:
=arrayformula(if(C2:C<>"",iferror(vlookup(C2:C&"|"&D2:D,{PRef.!A:A&"|"&PRef.!B:B,PRef.!C:C},2,0),"Not found"),))
您的查询有两个错误:
- 您的 sheet 名称有一个句点:它是“PRef.”,而不是“PRef”,因此请更改 sheet 或数据调用行的名称。
- 您忘记调用要从中收集数据的列。将其更改为
=QUERY(PRef.!A:E
会产生所需的结果,如图所示。
那些讨厌的缺失标点符号总是会导致错误,所以最好避免这种情况发生的可能性。
查询格式为=QUERY([datasheet]![data area]
。如果忘记定义数据区,查询就不知道从哪里收集数据。
编辑 2021 年 8 月 10 日
我再次查看了您的数据库,并尝试稍微调整一下查询。不知道为什么,Google Sheets好像不太喜欢like
;改为 =
,完全解决了问题。
=QUERY(GoodsList,"select C where A = "&C2&" and B = "&D2&" limit 1",0)
我把有商品的区域重命名为GoodsList,所以我可以简单地引用它。除此之外,唯一的区别是我用等号替换了 like
并删除了不必要的单引号。屏幕截图:
请注意 limit 1
是绝对必要的,否则您将收到 #Ref
错误,因为它正在尝试写入由查询命中填充的单元格。