【问题标题】:VLOOKUP/MATCH With Multiple Matches具有多个匹配项的 VLOOKUP/MATCH
【发布时间】:2020-05-12 14:57:06
【问题描述】:

我不知道如何做一些我想你们中的一位大师以前做过的事情,不应该太具有挑战性。我的工作簿中有两张纸(我们称它们为ITEMS 和LOCS)。 工作表项目在 A 列中有一个唯一项目列表(大约 10,000 个),工作表 LOCS 在 A 列中有项目及其在 B 列中的位置。现在问题出现了,因为许多项目有多个位置(最多五个),因此占用多个LOCS 表上的行。有没有办法在我的项目表 B 列中使用 VLOOKUP 或 MATCH 的某种组合,将所有位置放入一个以逗号分隔的单元格中。显然,如果我将=VLOOKUP($A:$A, LOCS!$A:$B,2,0) 放入单元格 ITEMS!B1 中,它只会返回第一个位置。理想情况下,我希望它显示如下内容:架子、桌子、地板。任何正确方向的想法或指示将不胜感激 - 非常感谢!

Sample Data (Columns A:B from sheet ITEMS and columns D:E are from sheet LOCS and I highlighted the desired outcome in col B in green)

【问题讨论】:

  • 发布一些示例数据和想要的结果。
  • 我贴了一点数据给大家!希望它有助于使我的要求更清楚。我对 VBA 很陌生,但我正在慢慢掌握它,所以如果这是最好的方法,我会理解
  • 我也确信这应该可以通过 PowerQuery 作为公式之外的另一种选择

标签: excel excel-formula vlookup


【解决方案1】:

如果您有权访问新的动态数组公式,则可以使用以下公式并根据需要向下拖动:

单元格 E2:=TEXTJOIN(", ",TRUE,FILTER(B2:B14,A2:A14=D2))


【讨论】:

  • 我相信FILTER 会更快,因为与IF 这样的条件语句相比,它很可能在后端计算得更快。
  • 我不确定是否可以访问TEXTJOIN 而不能访问FILTER 函数。似乎现在可以访问新的动态数组公式不是常态
  • 确实如此 - 即使现在我在一台可以访问 TEXTJOIN 但还没有 FILTER 的计算机上。等不及所有新功能的广泛发布,这些将大大提高性能。
  • 太棒了!非常感谢,谁会想到 365 许可证会得到回报
  • 感谢您澄清@JustynaMK。鉴于人们无法使用新公式,您的解决方案将适用于比我更多的人。新公式无疑是游戏规则改变者。到目前为止,UNIQUE 函数是我最喜欢的
【解决方案2】:

如果您使用的是 Office 365,那么您将大有收获!

这是我的 LOCS 表 -

而数组公式使用TEXTJOIN(请务必使用Ctrl+Shift+Enter)-

=TEXTJOIN(", ",1,IF(LOCS!$A$2:$A$10=A2,LOCS!$B$2:$B$10,""))

结果-

【讨论】:

  • 哇,漂亮。比我想象的要容易得多。我想我有一个新的最喜欢的功能。非常感谢!
  • 没问题 - 我承认这也是我最喜欢的功能之一!我也很想知道您是否可以访问 FILTER,因为第二种解决方案可能更快(不幸的是,我是其中一位用户,遗憾的是还不能使用它)。
  • 我有过滤器(Mac 上的 Office 365)。它通过近 45,000 个地点的近 10,000 件物品飞行。这绝对是我工作流程的游戏规则改变者
  • 这些功能可在 Excel Online 上免费使用,以备您试用。这也是我做这些事情的方式(不幸的是,我只有 Excel 2019)。
  • 哦,太酷了!感谢@JvdV 的提示,我一定会试一试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 2016-02-07
  • 2017-03-26
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多