gs - 如何获取 A1 的值,在另一个 sheet 的列表的第 1 列中搜索它,获取该行,然后用该行第 2 列的值填充 A2?

gs - How to take A1's value, search for it in col 1 of a list on another sheet, get the row, then fill A2 with the value from col 2 of that row?

GoogleSheets

我有 2 个 Sheet: Signup& Employee List

员工可以通过在注册 Sheet 的 D 列的下拉菜单中输入或选择他们的姓名来注册会话。条目被验证,如果失败则被拒绝。

当他们这样做时,根据输入的姓名,我需要能够从员工列表 Sheet 的 B 和 C 列中获取员工电子邮件和员工 Phone 并将其放入它们的值分别进入注册 Sheet 的 E 和 F 列。

现在我正在使用脚本 onEdit 做所有事情,并且相当确定我可以完成它。

但是,有没有一种方法可以使用注册 Sheet 的联系人电子邮件和联系人 Phone 列的单元格中的公式来实现?

我想让事情尽可能简单明了,当我向它添加代码时,onEdit 代码似乎有点滞后。 (onEdit 仅在注册sheet 上的指定范围被编辑时运行)

有没有我不知道的相对简单的方法?

如果您需要说明,请告诉我,我可以提供脚本中的代码。

您需要使用 vlookup 函数 - 分解如下:

=VLOOKUP(D2,'EmployeeList'!A:C,2,false)

D2 是下拉列表中第一个 sheet 的员工姓名,我为第二个 sheet 编了一个 sheet 名称,但第二个参数引用了其他 sheet,并告诉它要搜索哪些列,第一列必须是具有匹配搜索词的列。

2 代表您想要的列索引,因此对于联系人电子邮件,您需要第二列,对于联系人 phone,您只需将公式稍微调整为:

=VLOOKUP(D2,'EmployeeList'!A:C,3,false)

如果你想将它应用到整个列,你可以做两件事 - 如果有一个值,通过将它包装在 'istext' 公式中强制它仅 运行,然后将整个事物包装在数组公式中:

=arrayformula(If(istext(D2:D),VLOOKUP(D2:D,'EmployeeList'!A2:C,2,false),))