我有一个基于查询的数据表-> tblPrimaryProducts
tblPrimaryProducts 有很多列,其中一些是 Category、SubCategory 和 Item。
如果我要对类别使用过滤器,我当然可以看到该类别中的子类别和项目。同样,如果我依次对 SubCategory 应用过滤器,我会看到该特定 Category + SubCategory 选择中的项目列表。最终,这是我试图实现的数据验证的目标。
有一个数据条目表 -> tblPackages
tblPackages 有很多字段,但重要的是上面列出的三个需要通过数据验证以受控方式实现,以便每一行都可以正确选择 Category + SubCategory + Item
我无法将数据表更改为数组或简单(或动态)命名范围,因为它将被刷新任意次数并且列位置可能会改变。这意味着我必须对两个表都使用基于表的命名系统。
到目前为止,我使用 XLOOKUP 的数据验证公式如下:
XLOOKUP([@[Primary Category]] & [@[Primary SubCategory]], tblPrimaryProducts[Category] & tblPrimaryProducts[SubCategory], tblPrimaryProducts[Item],,0)
[@[Primary Category]] 和 [@[Primary SubCategory]] 是 tblPackages 数据条目表中的字段。列出的其他字段来自 tblPrimaryProducts。到目前为止,我已经手动输入数据来测试这一点。
在 XL 公式窗口(您可以在填写字段时“查看”公式正在执行的操作)中,这似乎有效并提供了预期的输出。
当我尝试将其实现为数据验证时,它会抱怨公式中的错误。如果我在开头放置一个 INDIRECT,我会弹出语法错误。我过去曾遇到过 INDIRECT 的问题,这些问题已通过仔细使用引号得到解决。我似乎无法在这里找到一种方法来做到这一点。
有人对我如何基于数据表(而不是数组)或在这种情况下基于表的查询实现一些数据验证有任何想法吗?在正常情况下,我会使用动态命名范围,但在这里我不能。
非常感谢任何帮助或想法