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,还是让脚本更快-即,如果排序了,每次只需查看第一部分而不是整个列表?我想在某些情况下,最接近的匹配更可取根本没有对手。我只是猜测,这可能与最初几年设计该功能的方式有关。我所能做的就是猜测原意。我真的不知道。