Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 在预定义的答案列表-VLOOKUP-谷歌电子表格中查找数据的答案_Google Apps Script_Google Sheets_Vlookup_Gs Vlookup - Fatal编程技术网

Google apps script 在预定义的答案列表-VLOOKUP-谷歌电子表格中查找数据的答案

Google apps script 在预定义的答案列表-VLOOKUP-谷歌电子表格中查找数据的答案,google-apps-script,google-sheets,vlookup,gs-vlookup,Google Apps Script,Google Sheets,Vlookup,Gs Vlookup,我有一个谷歌电子表格,上面有一个主表选项卡。列A包含一组公司名称,其中一些名称重复出现,并被多次包含。在B列中,我想为每个公司预先定义一个唯一的代码。例如,如果我在a10、a14、a21中有一个公司名Nike,我每次在b10、b14、b21中都会有相同的代码 我最初是通过查看if/else块和switch语句(不确定google电子表格是否能做到这一点)来实现这一点的,但它们将变得庞大且难以管理,因为单行代码将涉及数百个公司名称 相反,我设置了另一个名为Codes Data的选项卡,其中包含a列

我有一个谷歌电子表格,上面有一个
主表
选项卡。列A包含一组公司名称,其中一些名称重复出现,并被多次包含。在B列中,我想为每个公司预先定义一个唯一的代码。例如,如果我在a10、a14、a21中有一个公司名Nike,我每次在b10、b14、b21中都会有相同的代码

我最初是通过查看if/else块和switch语句(不确定google电子表格是否能做到这一点)来实现这一点的,但它们将变得庞大且难以管理,因为单行代码将涉及数百个公司名称

相反,我设置了另一个名为
Codes Data
的选项卡,其中包含a列中所有公司名称的预定义列表和B列中的代码。随着时间的推移,此列表将被添加到

我想做的是在
主工作表
列B中有一个公式,它将检查相应列a单元格的值,在
代码数据
选项卡中找到该公司的唯一代码,并将该代码放在列B中

我开始使用VLOOKUP来实现这一点,起初它似乎很管用,但现在我得到了不一致的结果(即它的输出
Addidas | am-1121
ACMECO RESTAUR | am-1121
,根据代码数据表,它应该输出
Addidas | ad-5426

我在这里提供了一个示例电子表格:


VLOOKUP是执行此操作的正确函数吗?如果是,我如何才能更正确地使用它,如果不是,那么什么方法会更好?

您必须在查找公式中添加
FALSE
,否则它将不起作用:

=VLOOKUP(A5, 'Codes Data'!$A:$B, 2, FALSE)
使用“帮助”菜单,选择“工作表帮助”,然后键入“vlookup”。您将获得以下文档:

is_sorted-[可选-默认为TRUE]-指示要搜索的列(指定范围的第一列)是否已排序

如果is_sorted为TRUE或省略,则返回最接近的匹配项(小于或等于搜索键)。如果搜索列中的所有值都大于搜索键,则返回#N/A

如果is_sorted设置为TRUE或省略,并且范围的第一列未按排序顺序排列,则可能返回不正确的值

如果is_sorted为FALSE,则只返回精确匹配。如果存在多个匹配值,则返回与找到的第一个值对应的单元格内容,如果未找到该值,则返回#N/A


必须将
FALSE
添加到查找公式中,否则它将不起作用:

=VLOOKUP(A5, 'Codes Data'!$A:$B, 2, FALSE)
使用“帮助”菜单,选择“工作表帮助”,然后键入“vlookup”。您将获得以下文档:

is_sorted-[可选-默认为TRUE]-指示要搜索的列(指定范围的第一列)是否已排序

如果is_sorted为TRUE或省略,则返回最接近的匹配项(小于或等于搜索键)。如果搜索列中的所有值都大于搜索键,则返回#N/A

如果is_sorted设置为TRUE或省略,并且范围的第一列未按排序顺序排列,则可能返回不正确的值

如果is_sorted为FALSE,则只返回精确匹配。如果存在多个匹配值,则返回与找到的第一个值对应的单元格内容,如果未找到该值,则返回#N/A


谢谢@sandy Good-排序的目的是什么-是允许您对不完全相同的数据使用VLOOKUP,还是让脚本更快-即,如果对其进行排序,则每次只需查看第一部分而不是整个列表?我猜在某些情况下,最接近的匹配比完全不匹配更可取。我只是猜测,这可能与最初几年设计该功能的方式有关。我所能做的就是猜测原意。我真的不知道。谢谢@sandy Good-排序的目的是什么-是允许您对不完全相同的数据使用VLOOKUP,还是让脚本更快-即,如果排序了,每次只需查看第一部分而不是整个列表?我想在某些情况下,最接近的匹配更可取根本没有对手。我只是猜测,这可能与最初几年设计该功能的方式有关。我所能做的就是猜测原意。我真的不知道。