【问题标题】:If a cell in column A in sheet 2 equal to a value from sheet 1 then return the values from sheet 2 to column B and c in sheet 1如果工作表 2 中 A 列中的单元格等于工作表 1 中的值,则将工作表 2 中的值返回到工作表 1 中的 B 列和 c
【发布时间】:2019-11-27 12:15:45
【问题描述】:

我希望在 excel 上进行一种自动单元格更新,这是我们获得的产品的状态更新以及产品在仓库中的位置。

我有 VBA 的基本知识,但我没有编写任何代码来帮助我。我尝试使用 If 函数,但没有意义,因为我找不到实现我需要的方法。

这是第 1 页

和第 2 页

例子。

这就是我想要实现的目标: 如果 Sheet2 列 A 范围内的单元格 = 工作表 1 中的单元格 A2,则使用 sheet2 中的信息填充 Sheet1、B2 单元格和 Sheet1、C2 单元格,条件是它是最近的条目(在示例图像中,它是条目已发送状态)

您会推荐 VBA 还是使用公式,如果可以,我应该怎么做?

【问题讨论】:

  • 您有多少个可能的Status 值? 3?
  • 我总共有 5 个状态值

标签: excel vba


【解决方案1】:

这可以通过公式来完成,但获取最新值并不像看起来那么容易。但是,这可以通过关注this tutorial 来实现,以供参考。我特别提到了使用LOOKUP(的部分。

除此之外,您需要做的就是设置范围以引用正确的工作表。

=IFNA(LOOKUP(2,1/(Sheet2!A:A=Sheet1!A2),Sheet2!B:B),"")

【讨论】:

  • 感谢您的建议,我会尝试一下
【解决方案2】:

我在 B2 中的公式是:

=INDEX(Sheet2!$B:$B;MAX(SI(Sheet2!$A:$A=Sheet1!A2;ROW(Sheet2!$A:$A)-MIN(ROW(Sheet2!$A:$A))+1)))

我在 C2 中的公式是:

=INDEX(Sheet2!$C:$C;MAX(SI(Sheet2!$A:$A=Sheet1!A2;ROW(Sheet2!$A:$A)-MIN(ROW(Sheet2!$A:$A))+1)))

两个公式都是数组公式,所以不能用 ENTER 输入它们,而必须按 ENTER+CTRL+SHIFT同时

无论如何,这些公式可能会使您的文件变得沉重和缓慢。考虑重新设计保存数据的方式,考虑添加日期字段,并使用数据透视表恢复数据。

【讨论】:

  • 谢谢,我试试看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
相关资源
最近更新 更多