【问题标题】:vlookup is not getting the desired data. have two tables with common design numbervlookup 没有获得所需的数据。有两个具有共同设计编号的表
【发布时间】:2020-02-11 21:53:49
【问题描述】:

我有两张 Excel 表格。 一个有设计编号和相应的条形码编号(条形码是唯一的,但设计编号是重复的)

design number   bar code
947002035000    1212347
947002035000    1212348
947002041000    1185272
947002041000    1185274
947002041000    1185277

第二张表只有多个设计编号

design number  
947002035000
947002041000
947002041000
947002041000
947002041000
947002041000
947002041000

问题是当我使用vlookup 公式时,它会为我在第二张表中的一个设计提供多个相同的条形码数据,我希望条形码显示为唯一而不是重复相同的数字。

what i get                           what i wish i can get
design number  barcode               design number     barcode
947002035000   1212347               947002035000      1212347
947002041000   1185272               947002041000      1185272
947002041000   1185272               947002041000      1185274
947002041000   1185272               947002041000      1185277
947002041000   1185272               947002041000      na
947002041000   1185272               947002041000      na
947002041000   1185272               947002041000      na



由于数据包含数千条记录,因此执行此操作需要大量时间。

如果需要,我也会与您分享我正在使用的公式的详细信息 如果有人能在这方面帮助我,我将不胜感激,因为在接下来的 10 天里,我必须从大约 50 个这样的表格中提取数据.. 谢谢

更新而不是图像我试图编辑这篇文章..这是我第一次在这里发帖如果我确实犯了一些错误请原谅我 谢谢

=VLOOKUP(B368,[BHOJ.xls]Sheet1!B$3:C$32629,2,0)

【问题讨论】:

  • 我不完全理解您面临的问题。您可以创建一个非常小的(5-10 行)数据来显示您正在尝试做什么,而不是提供整个工作簿和所有数据?
  • 我的猜测是你没有得到你需要的值,因为设计编号是重复的。解决此问题的一种方法是创建一个“帮助”列:该列将结合设计编号和条形码值以创建可用于查找的真正唯一值。插入一个新列并使用=B5176&"-"&C5176 等公式创建一个新的、唯一的值,类似于947002041000-000000001212334
  • 我希望我已经更新了帖子以更清晰.. 请原谅我之前不清楚的帖子
  • 不幸的是,Excel 公式无法知道要使用哪个条形码值,因此它始终默认为第一个。 Excel 必须确定您何时查找设计编号,如果它为该设计找到的条形码列表为零或某些条形码已被放置在您的第二张纸上。您将不得不以用户定义函数 (UDF) 的形式编写自己的 VBA 代码。有很多地方可以解决这个问题。只需仔细计划必须发生的每个步骤,以确定您需要哪种条形码。

标签: excel excel-formula


【解决方案1】:

你可以试试这个 ARRAY-FOMULA 按 CTRL + SHIFT + ENTER

=INDEX($B$1:$B$6,SMALL(IF($A$1:$A$6=D2,ROW($B$1:$B$6)),COUNTIF($D$2:$D2;D2)))

更新 将计数功能更改为COUNTIF。现在应该适用于多个设计编号。

【讨论】:

  • 抱歉延迟回复,因为我有很多工作表要编辑,我想先完成它。我要么无法实现你建议的这个公式,要么出现了一些错误。每次我只得到第一个条形码,而不管列表中显示的任何设计编号。如果我错了,请纠正我。 #
  • 刚刚看到我们更新的公式。将对其进行测试并在半小时内恢复..非常感谢您痛苦地帮忙..
  • =INDEX($D$1:$D$1649,SMALL(IF($C$1:$C$1649=I2,ROW($D$1:$D$1649)),COUNTIF($I$2 :$I2;I2))) 尝试使用它,但给了我一个错误。
  • @anand aggarwal 我还更新了图片并使用了您调整后的公式。结果符合预期。您是否通过按所有 3 个按钮(CTRL + SHIFT + ENTER)输入公式?
  • 是的,我按照你告诉我的做了。我使用 vlookup 已经有一段时间了,所以请理解这一点,但我猜我在这方面做错了什么
猜你喜欢
  • 1970-01-01
  • 2017-09-27
  • 2020-07-10
  • 1970-01-01
  • 2015-06-16
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 2016-08-02
相关资源
最近更新 更多