Google 表格中基于多个条件的条件下拉列表

问题描述 投票:0回答:1

我在根据特定条件在 Google 表格中设置条件下拉列表时遇到问题。以下是我想要实现的目标以及遇到的问题:

目标

如果满足以下条件,我想在列中创建下拉列表:

- 条件 01: 同一行的 E 列中的值应为以下指定值之一:

T1、T2、T3、T4、T5、T6、P1、P2、P3、B1 或 B2。

- 条件 2:

下拉选项应来自“SEO Validación Datos”表。具体来说,数据应来自“SEO Validación Datos”中第 6 行开始的列,但前提是该表第 2 行中的值为“HOME”。

最后,我想使用条件格式,如果“SEO”工作表 C 列中的值等于 Primary,则以红色显示下拉选项;如果值等于 Secundaria,则以蓝色显示下拉选项。 SEO Validación 表中可能需要进行一些更改,但我目前不知道如何进行。

enter image description here

所做的尝试

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

enter image description here

数据验证设置

我尝试使用数据验证功能根据“SEO Validación Datos”工作表的值创建下拉列表。我能够设置下拉菜单,但是:

  • 我无法根据 E 列的条件动态链接下拉列表。当我尝试添加第二条规则时,第一个规则完全消失。
  • 我也无法为“SEO Validación Datos”工作表第 2 行的值“Home”创建条件

使用公式显示值

我尝试使用公式

=IF(或(E3=“T1”,E3=“T2”,E3=“T3”,E3=“T4”,E3=“T5”,E3=“T6”,E3=“P1”,E3= “P2”,E3 =“P3”,E3 =“B1”,E3 =“B2”),G3,“”)

在辅助列中有条件地显示值。

但是,这种方法仅显示值,并不应用下拉功能。

动态下拉应用程序

我尝试将 REGEXMATCH 与其他公式结合起来以有条件地显示下拉选项,但在根据动态条件显示下拉列表时遇到困难。

请求

任何人都可以提供有关如何在 Google 表格中实现此目标的解决方案或指南吗?

在“理想结果 - 主页”工作表下,有我希望实现的目标的预览。

enter image description here

validation google-sheets google-sheets-formula conditional-formatting
1个回答
0
投票

创建动态下拉菜单并引用其他工作表中的值

获取正确范围似乎存在一些问题。因此,对于这一点,我建议您删除正在尝试使用的工作表范围上当前现有的数据验证,以避免验证重叠。

示例代码:

function applyDropdown(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var homeSheet = ss.getSheetByName("Expected Result - Home")
var vsSheetData = ss.getSheetByName("Validación Scripts").getRange("A4:A8");
var columnH = homeSheet.getRange(4,5,homeSheet.getLastRow(), 1);
var columnHValues = columnH.getValues().flat();
var validValues = ['T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'P1', 'P2', 'P3', 'B1', 'B2']
var rule = SpreadsheetApp.newDataValidation().requireValueInRange(vsSheetData).build();
for(x = 0; x <columnHValues.length; x++){
if(columnHValues[x] != "" && validValues.includes(columnHValues[x])){
  homeSheet.getRange(x+4, 8).setDataValidation(rule);
  }

}

}

示例输出:

Sample Output

参考:

数据验证

© www.soinside.com 2019 - 2024. All rights reserved.