Google Sheets: 如何使用另一个工作表中的数据创建下拉列表

39
我需要在电子表格A的一个单元格(假设是B2)中填充一个下拉列表(使用数据验证),该下拉列表的数据基于电子表格B中的数据(范围为C3:C15)。 我该如何做到这一点?
3个回答

35
从另一个工作簿获取项目与从同一工作簿的另一个工作表获取项目类似。这是一个两步骤的过程。首先,您需要将要用于验证项目的数据导入到您想要使用它的工作簿中,然后按照@uselink126的回答中所述进行连接。
一个例子:工作簿2中包含一个无特定顺序的水果名称列表。该列表已被分配一个命名范围Fruits以提高可读性,但这并非必需。工作簿1,第1个工作表中有一列单元格,我们希望用来填充来自工作簿2的项目的下拉列表。 第1步 - 导入数据 在工作簿1中添加另一个工作表,并将以下公式插入到A1单元格中: =ImportRange("","Sheet1!Fruits")

在这个例子中,作为导入的一部分,项目被按字母顺序排序,要做到这一点,您需要输入:<key>是Google文档在您创建电子表格时分配的唯一ID。

    =Sort (ImportRange("<key>","Sheet1!Fruits"), 1, true)

在第1列中,1, 表示按照第1列进行排序,true表示升序排序。第1列的单元格应该填充排序后的水果。

步骤2 - 将数据验证指向导入的列表

在工作簿1的第1个工作表上,选择要将水果作为下拉数据源的单元格。

  • 右键单击所选单元格,从菜单中选择数据验证。将条件设置为下拉列表(从范围),并输入Sheet2!A1:A20

就是这样。这些单元格中应该出现下拉箭头,单击后将显示水果列表。

请注意,这是“实时”的 - 向工作簿2的列表中添加水果项目也会自动按排序添加到下拉列表中。


3
将其他工作簿中的数据导入到此工作簿中,这真的是唯一的方法吗?我希望避免添加另一个仅复制另一个工作簿中数据的工作表。 - Nick
3
据我所知,你无法直接从另一个工作簿中获取下拉菜单项,你需要将它们导入到要使用它们的工作簿中。这可能有点麻烦,但是每次用户点击 Chevron 时从另一个工作簿获取数据可能比从同一工作簿获取更加耗费资源。请记住,验证源数据范围不一定在另一个工作表上,它可以是同一工作表上的范围,例如 Sheet1!B1:B20 而不是 Sheet2!A1:A20,但我认为最好将其隐藏/放在角落里。 - rossmcm
目前这个解决方案会出现“公式解析错误”。您需要将“,”改为“;”。 这样就像这样:=IMPORTRANGE("<key>";"Sheet1!Fruits") - Josep Alsina
奇怪。在我的示例工作簿上仍然可以运行。我尝试进行更改(使用分隔符;而不是,),但Google解析器将其改回了, - rossmcm

15

在Google Sheets中访问另一个电子表格中单元格的格式为:

SheetName!CellAddress
例如,假设您有一个包含两个名为Sheet1Sheet2的电子表格的谷歌表格(这些名称列在每个表格左下角的选项卡上)。
如果您想要在Sheet1中访问Sheet2中的单元格B2,则可以通过输入以下内容来引用它:Sheet2!B2 如果您想要在Sheet2中访问Sheet1中的单元格C3:C15,则可以通过输入以下内容来引用这些单元格:Sheet1!C3:C15 要将另一个工作表中的特定单元格添加到下拉菜单中:
1. 选择要放置下拉菜单的单元格
2. 右键单击该单元格并选择“数据验证”
3. 在对话框中,单击标准输入框中的网格图像
4. 这会弹出“哪些数据?”对话框
5. 单击要访问的工作表选项卡
6. 按住Shift并单击要选择的单元格(单元格地址将显示在“哪些数据?”对话框的输入框中)
7. 单击“确定”即可完成。如果您在源工作表中进行更改,则数据将更新。
更多信息:https://support.google.com/docs/answer/186103?hl=en

2
抱歉,也许我在问题中没有表达清楚。我的意思是:我需要从书A中获取数据,并将其用于填充书B(Google驱动器上的另一个文件)中的下拉菜单,而不是使用同一本书(文件)的另一个工作表中的数据。该项目已经完成 - 我们采用了另一种方法。感谢您的答案 - 对于所述问题是正确的。 - keshet
1
@keshet,你应该接受rossmcm的答案。它是情况相符的。 - Eugene
这个好像不能再用了: Sheet1!C3:C15。我想从另一个工作表中引用一个范围。 - Khom Nazid

1

与rossmcm的答案类似,但由于他的答案对我无效,所以进行了一些调整:

=IMPORTRANGE(spreadsheet_url; range_string)

其中spreadsheet_url是要导入数据的电子表格的完整URL,range_string是一个字符串,格式为"[sheet_name!]range"(例如"Sheet1!A2:B6"或"A2:B6"),指定要导入的范围。

示例:

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1EwEn_2dSbgAlR7jJ7UT_MyE3h1-Biq3qoovfIGUnVlo/edit#gid=0", "Sheet1!A1:A7")

更多信息请参考来自Google DOCS帮助

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接