【问题标题】:How can I make a drop down list in Excel 2013 based on several conditions?如何根据几个条件在 Excel 2013 中制作下拉列表?
【发布时间】:2021-11-05 22:02:25
【问题描述】:

我想要实现的是卖家可以选择蓝色单元格中的STORE(或者使用下拉列表或硬输入商店名称),并根据蓝色单元格上的选择,为特定产品和特定商店提供可用的POSITIONS绿色单元格中显示为下拉列表

假设我有一个 Excel 工作簿,其中包含一个包含产品数据的表格的工作表,该表格每天自动从我们的导航服务器中以这种布局导入。它有 4 列,包括产品代码、描述、可以在其中找到的商店和在商店中的位置(请查看屏幕截图)。它包含 1.5k 行并且动态变化,例如,添加新项目或交换位置。

如您所见,同一产品(PRODUCT 2)可以位于多个商店(STORE 1、2 和 3),并且它可以位于每个商店的多个位置(位置 2、3、1 和 4) .

现在我需要卖家报告他们从哪里挑选了哪些商品,不仅是商店,还包括商店内的位置。他们使用同一个 Excel 工作簿中的另一个工作表来执行此操作。它看起来或多或少像这样(请查看屏幕截图)。

我知道下拉列表是通过数据验证实现的,但我无法弄清楚这个公式。我尝试了几种方法,例如:

  • 直接在数据验证列表框中使用与上述相同的公式,它仅返回找到的第一个 POSITION。
  • 数据验证框中不允许的 VBA 自定义函数。

我对 Power Query 和 VBA 以及 forumla 都感到满意,并且可以调整我看到的大部分代码,但我不知道为什么我就是不知道如何实现这一点,也许只是我被挡住了,但我开始走的每一条路都走上了死胡同。

有人知道如何解决这个问题吗?它看起来并不复杂,但对我来说变得不可能。

非常感谢您的宝贵时间!!

【问题讨论】:

    标签: excel vba excel-formula powerquery


    【解决方案1】:

    这是我最后做的,以防万一其他人面临这种​​情况。

    1. 我创建了一个导入该 CSV 的 PowerQuery,而不是 POSITIONS 的纯文本表。将该工作表命名为 _LOCATIONS。
    2. 添加了一个将 PRODUCT 和 STORE 组合在一起的自定义列(E 列),因此我有类似唯一标识符的东西,但在 PowerQuery 中会产生类似的结果。

    组合列:

    1. 已排序的 E 列和子排序的 D 列,因此我确保列表始终按照我的需要进行排序,并保存了查询。

    2. 然后,在工作表 REPORT 中,我输入此公式以在单元格 D2 的数据验证中创建下拉列表:

      OFFSET(_LOCATIONS!$D$1,MATCH($A2&"-"&$C2,_LOCATIONS!$E:$E,0)-1,0,COUNTIF(_LOCATIONS!$E:$E,$A2&"-"&$C2))

    我可以从所选商店中所选产品的可用位置中进行选择。

    简要说明: 我在第一个 POSITION (D1) 中设置了 OFFSET 函数的引用,然后将它移动到 MATCH 函数检测到的行数(在新创建的组合列中搜索“PRODUCT 2-STORE 2”字符串) 减 1(PoweryQuery 表有标题)和 0 列。这让我第一次出现我的字符串(但在 POSITIONS 列)。然后我使偏移量与 COUNTIF 函数检测到的行数一样高(它计算我的 PRODUCT-STORE 对的所有出现次数),返回与 PRODUCT-STORE 对匹配的所有位置(D 列)的数组。

    如果需要,请用西班牙语询问公式。

    【讨论】:

      猜你喜欢
      • 2014-04-05
      • 2023-02-08
      • 1970-01-01
      • 2021-10-01
      • 1970-01-01
      • 2020-06-18
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多