【问题标题】:Conditional data validation in Google SheetGoogle 表格中的条件数据验证
【发布时间】:2021-09-01 13:15:45
【问题描述】:

我目前正在 Google 表格中创建一个表单来管理员工的储物柜分配。 这个想法是能够根据选择的更衣室(通过另一个下拉菜单)通过下拉菜单选择更衣室。我有一个数据库,其中有一列用于更衣室,另一列用于更衣室,最后一个用于指示拥有更衣室的人的姓名。

因此,对于第一个下拉菜单(更衣室选项),我创建了一个数据验证,其中我选择了整个更衣室列。对于第二个下拉菜单,我在我的数据库中添加了一列,其中将根据所选更衣室显示所有结果。

这是我输入的代码: =FILTER(B2:B16;A2:A16=Form!B5)

这是我的文件的链接: link

它有效,但是我希望能够仅显示可用的储物柜(因此在相关储物柜行上没有显示名称的地方)。

我试过 =SI(C2:C16!="";B2:B16;"") 但它不起作用。 我已经搜索过,但我找不到任何提到这一点的网站。

请问有人有意见吗?

提前感谢您的帮助。

【问题讨论】:

  • 好的,我找到了解决方案。这是给感兴趣的人的公式: =FILTER(B2:B16;(A2:A16=Form!B5)*(C2:C16="")) 但是,我想通过优先显示来加深这个公式以 _A 结尾的机架(我更新了上面共享的文件,标签 3 和 4)。提前感谢您的反馈

标签: google-sheets


【解决方案1】:

解决方案:

您可以使用此公式将结果范围从 A 排序到 B:

=index(sort({FILTER(B2:B21;(A2:A21=Form!B5)*(C2:C21=""))\arrayformula(right(FILTER(B2:B21;(A2:A21=Form!B5)*(C2:C21=""));2))};2;TRUE);0;1)

基本上,另一列是从删除第一个字符的结果范围构建的:

arrayformula(right(FILTER(B2:B21;(A2:A21=Form!B5)*(C2:C21=""));2))

这与原始结果范围合并,然后排序。最后用 INDEX 得到第一列。

【讨论】:

    【解决方案2】:

    试试

    =query({A2:C21\arrayformula(split(B2:B21;"_"))};"select Col2 where Col1='"&Form!B5&"' and Col3 is not null order by Col5";0)
    

    如果 Form!B5 = B

    【讨论】:

      猜你喜欢
      • 2022-06-19
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多