【发布时间】:2021-11-05 22:02:25
【问题描述】:
我想要实现的是卖家可以选择蓝色单元格中的STORE(或者使用下拉列表或硬输入商店名称),并根据蓝色单元格上的选择,为特定产品和特定商店提供可用的POSITIONS在绿色单元格中显示为下拉列表。
假设我有一个 Excel 工作簿,其中包含一个包含产品数据的表格的工作表,该表格每天自动从我们的导航服务器中以这种布局导入。它有 4 列,包括产品代码、描述、可以在其中找到的商店和在商店中的位置(请查看屏幕截图)。它包含 1.5k 行并且动态变化,例如,添加新项目或交换位置。
如您所见,同一产品(PRODUCT 2)可以位于多个商店(STORE 1、2 和 3),并且它可以位于每个商店的多个位置(位置 2、3、1 和 4) .
现在我需要卖家报告他们从哪里挑选了哪些商品,不仅是商店,还包括商店内的位置。他们使用同一个 Excel 工作簿中的另一个工作表来执行此操作。它看起来或多或少像这样(请查看屏幕截图)。
我知道下拉列表是通过数据验证实现的,但我无法弄清楚这个公式。我尝试了几种方法,例如:
- 数组公式返回同一行中的所有位置,如下(公式 2.):https://www.ablebits.com/office-addins-blog/2017/02/22/vlookup-multiple-values-excel/。计算 1.5k 项非常慢,一旦完成,我无法弄清楚如何进行数据验证以查找数组公式返回的 4 或 5 或 10 个 POSITIONS,这也需要过滤存储(请检查我最近的屏幕截图,数组公式从 E 列返回 POSITIONS)。
- 直接在数据验证列表框中使用与上述相同的公式,它仅返回找到的第一个 POSITION。
- 数据验证框中不允许的 VBA 自定义函数。
我对 Power Query 和 VBA 以及 forumla 都感到满意,并且可以调整我看到的大部分代码,但我不知道为什么我就是不知道如何实现这一点,也许只是我被挡住了,但我开始走的每一条路都走上了死胡同。
有人知道如何解决这个问题吗?它看起来并不复杂,但对我来说变得不可能。
非常感谢您的宝贵时间!!
【问题讨论】:
标签: excel vba excel-formula powerquery