从数据选项卡创建下拉列表(有条件的)
Create dropdown list from data tab (conditional)
不确定如何正确表达这一点,但我无法理解接下来的事情;
我有一个带有两个选项卡的 Google Sheet。一个选项卡显示基于所选参数(ID 和类别)的数据,另一个选项卡包含所有数据。
数据由一个 ID 和最多 4 个类别组成,每个类别具有 3 个唯一值。在第一个选项卡中选择项目 ID 时,它应该生成一个下拉列表,其中包含数据选项卡中具有相同 ID 的项目的所有类别名称。它应该只拉出不为空的类别。在第一个选项卡中选择 ID 和其中一个类别后,它应该提取该特定类别的 3 个唯一值并将其显示在第一个选项卡中。
选项卡 1
第一个单元格中的下拉列表只是数据选项卡 'B' 列中所有值的范围。一旦在选项卡 1 中选择了一个 ID,它应该会自动生成一个包含所有类别值(如果不为空)的下拉列表。在下面的例子中,它应该创建一个下拉列表,其值是“Example 1 and Example 2”。如果有低于类别 3 的值,则应创建一个包含 3 的下拉列表。
一旦选择了 ID 和类别,它应该从所选类别中提取相应的第一、第二和第三值。
数据选项卡
有几种方法可以实现此行为,但我建议使用 =FILTER
函数(您可以阅读更多相关信息 here)。
我已经设置了我的模拟数据选项卡如下,当然这个方法可以很容易地适应:
您可以看到我列出了所有 ID-Category 组合及其对应的值(我假设每个 ID 有多个类别)。
现在进入主选项卡:
对于 ID 列,可以进行简单的数据验证。您可以 select 数据选项卡 中的所有 ID,重复项将自动被丢弃。这可以通过以下方式轻松实现:
=Sheet2!$A:$A
对于第二列中的 Category 验证,需要一个额外的步骤,因为本机填充下拉列表(动态调整 Category 下拉列表到当前 selected ID) [还] 不受支持。不过还是可以通过以下技巧实现的:
帮助程序中用于验证的公式如下:
=TRANSPOSE(FILTER(Sheet2!B:B,Sheet2!A:A=A2))
在类别数据验证中,我们有以下范围:
=G2:2
对于不同的值,我们可以再次使用FILTER
公式。您可以将其粘贴到 C2
单元格中,并根据需要将其扩展到尽可能多的列和行:
=FILTER(Sheet2!C:C,Sheet2!$B:$B=$B2,Sheet2!$A:$A=$A2)
不确定如何正确表达这一点,但我无法理解接下来的事情; 我有一个带有两个选项卡的 Google Sheet。一个选项卡显示基于所选参数(ID 和类别)的数据,另一个选项卡包含所有数据。
数据由一个 ID 和最多 4 个类别组成,每个类别具有 3 个唯一值。在第一个选项卡中选择项目 ID 时,它应该生成一个下拉列表,其中包含数据选项卡中具有相同 ID 的项目的所有类别名称。它应该只拉出不为空的类别。在第一个选项卡中选择 ID 和其中一个类别后,它应该提取该特定类别的 3 个唯一值并将其显示在第一个选项卡中。
选项卡 1
第一个单元格中的下拉列表只是数据选项卡 'B' 列中所有值的范围。一旦在选项卡 1 中选择了一个 ID,它应该会自动生成一个包含所有类别值(如果不为空)的下拉列表。在下面的例子中,它应该创建一个下拉列表,其值是“Example 1 and Example 2”。如果有低于类别 3 的值,则应创建一个包含 3 的下拉列表。
一旦选择了 ID 和类别,它应该从所选类别中提取相应的第一、第二和第三值。
数据选项卡
有几种方法可以实现此行为,但我建议使用 =FILTER
函数(您可以阅读更多相关信息 here)。
我已经设置了我的模拟数据选项卡如下,当然这个方法可以很容易地适应:
您可以看到我列出了所有 ID-Category 组合及其对应的值(我假设每个 ID 有多个类别)。
现在进入主选项卡:
对于 ID 列,可以进行简单的数据验证。您可以 select 数据选项卡 中的所有 ID,重复项将自动被丢弃。这可以通过以下方式轻松实现:
=Sheet2!$A:$A
对于第二列中的 Category 验证,需要一个额外的步骤,因为本机填充下拉列表(动态调整 Category 下拉列表到当前 selected ID) [还] 不受支持。不过还是可以通过以下技巧实现的:
帮助程序中用于验证的公式如下:
=TRANSPOSE(FILTER(Sheet2!B:B,Sheet2!A:A=A2))
在类别数据验证中,我们有以下范围:
=G2:2
对于不同的值,我们可以再次使用
FILTER
公式。您可以将其粘贴到C2
单元格中,并根据需要将其扩展到尽可能多的列和行:=FILTER(Sheet2!C:C,Sheet2!$B:$B=$B2,Sheet2!$A:$A=$A2)