繁体   English   中英

使用 ArrayFormula 的 Google 表格多个相关下拉列表

[英]Google Sheet Multiple Dependant Dropdowns Using ArrayFormula

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

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

“费率表”选项卡是我正在过滤的数据源。

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

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

我遇到困难的地方是“付款”下拉菜单,这取决于前两个(服务,令牌)。 在“Rate Filter Adv”选项卡上,cel D5 结果应该只有“In-Kind”。 不是实物和 NEXO。

我对解决这个问题的全新方法持开放态度。
我正在尽我所能。 目前正在研究 QUERY,但我也在研究 ArrayFormula、AND、OR 的限制。

演示表

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

谢谢你。

这是一个提案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('')
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM