【问题标题】:Google Sheet Multiple Dependant Dropdowns Using ArrayFormula使用 ArrayFormula 的 Google 表格多个相关下拉列表
【发布时间】:2021-04-12 09:23:10
【问题描述】:

我正在尝试创建多个相关下拉列表来过滤 Google 表格中的数据集。

“Rate Filter Basic”选项卡按我预期的方式工作,无需创建 ArrayFunction 来复制下拉菜单。

“费率表”标签是我要过滤的数据源。

“Rate Filter Adv”选项卡是我尝试创建一个 ArrayFormula 的地方,该 ArrayFormula 将自动填充下拉列表的更深层次。我一直在学习,并非所有函数都允许我在其中嵌套 ArrayFormula 或 AND OR 子句。

带有“”的选项卡是我为每个列表重建下拉数据的地方。 “付款”有一个带有“NEXO”的突出显示的cel。

我遇到的问题是在“付款”下拉列表中,这取决于前 2 个(服务、令牌)。在“Rate Filter Adv”选项卡上,cel D5 结果应该只有“In-Kind”。不是实物和 NEXO。

我愿意采用全新的方法来解决这个问题。
我正在尽我所能。目前正在研究 QUERY,但我也在研究 ArrayFormula、AND、OR 的限制。

演示表

https://docs.google.com/spreadsheets/d/1rcWYgNeAXE8mEb43m0Jf50cQ9U9ntA0yd8znXAi5kMU/edit?usp=sharing

谢谢。

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    这是一个提案https://docs.google.com/spreadsheets/d/17b0FoUHM5lAOcdeWnzxrGm6ErqYxWlfggcNDsKt8yHQ/edit?usp=sharing 公式示例

    =transpose(unique(query('Rate Table'!A$4:D,"select D where A='"& 'Rate Filter Adv'!B4 &"' AND B='"& 'Rate Filter Adv'!C4 &"' AND C='"& 'Rate Filter Adv'!D4 &"' ")))
    

    在 C 或 D 列中应用新值时,您可以使用 onEdit 删除其他值

    function onEdit(event){
      var sh = event.source.getActiveSheet();
      var rg = event.source.getActiveRange();
      if (sh.getName()=='Rate Filter Adv'){
        var c = rg.getColumn();
        var r = rg.getRow();
        if (c==4){sh.getRange(r,c+1).setValue('')}
        if (c==3){
          sh.getRange(r,c+1).setValue('')
          sh.getRange(r,c+2).setValue('')
        }
      }
    }
    

    【讨论】:

    • 嗨,谢谢,这是一个很好的解决方案,但它没有考虑“ArrayFormula”。原因我真的希望在所有子选项卡上,如果我向下扩展行,我希望子选项卡也自动向下更新行。我只是尝试自己添加 ArrayFormula,但看起来 QUERY 不支持它。对此有什么想法吗?
    • 詹姆斯,我想找到这样的解决方案!我尝试使用 FILTER、MMULT 等...我发现的唯一方法是一次性在子选项卡中填充足够的行。
    • 没问题。谢谢你。我只是要运行有限的行数。
    猜你喜欢
    • 2019-03-05
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2021-02-27
    • 2020-12-01
    • 1970-01-01
    • 2022-07-31
    • 2018-11-14
    相关资源
    最近更新 更多