为什么这个查询函数 returns 的结果不正确?
Why does this query function returns incorrect results?
我有一个 sheet 在一个选项卡上带有名字变体,在另一个选项卡上有一个名为“导入”的搜索 table。我使用了查询功能
=if(B4="","",QUERY('First Names'!B:C, "Select C where B matches '.*"&B4&".*' limit 1",0))
通过在 B 列中查找部分匹配项,将“导入”选项卡上的“名字”选项卡上的 return C 列
但是,如果我输入名称 Jon,它 returns Jo Video 而不是 约翰视频。它这样做是因为名称 Jonnelle 在 Jo video.
的行
另一件事,如果我输入名称 Bran,它 returns Branch Video 即使名称 Bran不在整个列表中。我想 return 一个 N/A 错误。
所以我的问题是如何构建查询公式或其他公式以正确完成工作?
这里有一个 link 示例 sheet:
https://docs.google.com/spreadsheets/d/1ymK9fdfl9Me0QU5OhM44K3RRaXnZ6rTSQXKOyAO1cFc/edit?usp=sharing
以下是 sheet:
的一些屏幕截图
First Names sheet Import tab
First Names sheet First Names tab
提前感谢您的回答!一定会很感激的。
.*
表示零或任意长度的字符串,因此 Jonelle
匹配 .*Jon.*
并且 Branch
匹配 .*Bran.*
如果你想完全匹配一个名字,它应该满足以下任何条件
- 作为名字
"^"&B2
或在不同的名字之后 ".* "&B2
和
- 使用不同的名字继续
B2&",.*"
或者作为姓氏 B2&"$"
=if(B2="","",QUERY('First Names'!B:C, "Select C where B matches '(^|.* )"&B2&"(,.*|$)' limit 1",0))
我已将此公式应用于那两个单元格,您可以查看。
我有一个 sheet 在一个选项卡上带有名字变体,在另一个选项卡上有一个名为“导入”的搜索 table。我使用了查询功能
=if(B4="","",QUERY('First Names'!B:C, "Select C where B matches '.*"&B4&".*' limit 1",0))
通过在 B 列中查找部分匹配项,将“导入”选项卡上的“名字”选项卡上的 return C 列
但是,如果我输入名称 Jon,它 returns Jo Video 而不是 约翰视频。它这样做是因为名称 Jonnelle 在 Jo video.
的行另一件事,如果我输入名称 Bran,它 returns Branch Video 即使名称 Bran不在整个列表中。我想 return 一个 N/A 错误。
所以我的问题是如何构建查询公式或其他公式以正确完成工作?
这里有一个 link 示例 sheet: https://docs.google.com/spreadsheets/d/1ymK9fdfl9Me0QU5OhM44K3RRaXnZ6rTSQXKOyAO1cFc/edit?usp=sharing
以下是 sheet:
的一些屏幕截图First Names sheet Import tab First Names sheet First Names tab
提前感谢您的回答!一定会很感激的。
.*
表示零或任意长度的字符串,因此 Jonelle
匹配 .*Jon.*
并且 Branch
匹配 .*Bran.*
如果你想完全匹配一个名字,它应该满足以下任何条件
- 作为名字
"^"&B2
或在不同的名字之后".* "&B2
和 - 使用不同的名字继续
B2&",.*"
或者作为姓氏B2&"$"
=if(B2="","",QUERY('First Names'!B:C, "Select C where B matches '(^|.* )"&B2&"(,.*|$)' limit 1",0))
我已将此公式应用于那两个单元格,您可以查看。