创建动态数据验证



给定一个工作表中的以下数据集,我们说'产品类型'(显示的列和标题):
| A | B | C |
| ----------: | ------: | -----: |
|产品类型|台式机|笔记本电脑|
台式机|戴尔|戴尔|笔记本电脑|惠普|苹果|

在另一个工作表中,让我们说"资产",我已经设置了A列,要求匹配"产品类型"(不包括标题)的A列中列出的项目的数据验证。我要做的是,一旦在"资产"中选择了列A,我想创建一个动态查询数据验证,然后将在"产品类型"中显示标题列的值。

作为一个例子,在"资产"表中,如果列A有"笔记本电脑";选中,列B将对"笔记本电脑"下的值使用数据验证。列中的"产品类型";然后给出唯一的选项"戴尔";或";Apple"。或者,如果将ColA更改为"桌面",则将数据验证定义为仅允许"戴尔"。或";HP"作为选项。

我不确定这是否可能。然而,Google表单中的数据验证声称允许一个范围或"公式"。

我不记得我从哪里采购这个公式,但它可以在单元格内运行查询时显示我需要的值。但是,我无法在数据验证字段中使用相同的公式。

=ARRAYFORMULA(IFERROR(VLOOKUP(A2, TRANSPOSE({'Product Types'!A1:M1; 
REGEXREPLACE(TRIM(QUERY(IF('Product Types'!A2:M<>"", 'Product Types'!A2:M&",", )
,,999^99)), ",$", )}), 2, 0)))

上面的查询显示了我想在'Product Types'中使用逗号分隔的列的正确值,但我不确定这是否可以转换为数据验证可以使用的东西,或者是否有完全不同的方法来完成此操作。

注:我是新的。表的Markdown似乎在编辑时起作用,但在发布时不起作用。

答案是否定的。数据验证不支持复杂公式的直接输入。您需要在某些列中运行公式,然后在数据验证

中引用该列的范围。