如果一个单元格等于标准,则在一个范围内查找单元格将其值复制到另一列

我很难试图让这个为我工作。 为了帮助解释我需要做什么,我已经在下面制作了一个(希望)非常简单的例子。

我想要做的是:

  • 在一个单元格范围内A:AfindJ Bloggs (注意可以有多个条目,我需要所有这些)
  • 当发现J Blogs的订单复制他的订单dateB1 ,要求删除。 dateC1和实际del。 dateD1
  • 将这些信息粘贴到表格G1:J4

注意:客户名单可能很长,有些客户可能会单独订单。 我需要生成所有这些命令的列表(不需要检查date是否在过去等)。

每次查询运行时,对于H Simpson这个时间来说,只有H Simpson的细节会出现在表格G1:J4

 +---------------+----------------+---------------------+------------------+ | Customer | Order Date | Requested Delivery | Actual Delivery | +---------------+----------------+---------------------+------------------+ | J Bloggs | 01/01/2013 | 02/01/2013 | 02/01/2013 | | H Simpson | 05/01/2013 | 08/01/2013 | 09/01/2013 | | A Name | 10/01/2013 | 10/01/2013 | 10/01/2013 | | J Bloggs | 15/01/2013 | 22/01/2013 | 22/01/2013 | +---------------+----------------+---------------------+------------------+ 

你的幸运日! 我有一个免费的空余时间,并为你写这个代码。

它会询问你的Name – 你只需要select你想要生成数据名称的单元格

它将在列G:J创build一个 ,并在列A:D粘贴匹配结果

 Sub Findining() Dim r As Range, i As Long, j As Long, rng As Range Range("G:J").ClearContents For i = 1 To 4 Cells(1, i + 6) = Cells(1, i) Next i Set r = Application.InputBox("Select Name", Type:=8) If r.Columns.Count > 1 Or r.Rows.Count > 1 Then Do Until (r.Columns.Count = 1 And r.Rows.Count = 1) MsgBox "You can only select 1 name" Set r = Application.InputBox("Select Name", Type:=8) Loop End If For i = 2 To Range("A" & Rows.Count).End(xlUp).Row Set rng = Range("A" & i) If StrComp(r, rng, vbTextCompare) = 0 Then For j = 0 To 3 Cells(Cells(Rows.Count, rng.Offset(0, 6 + j).Column).End(xlUp).Row + 1, rng.Offset(0, 6 + j).Column).Value = rng.Offset(0, j).Value Next j End If Set rng = Nothing Next i Columns.AutoFit End Sub 

之前:

在这里输入图像说明

后:

在这里输入图像说明

至less有三种不同的方法:

  1. 使用AutoFilter
  2. 使用macros来提取数据
  3. 使用VLOOKUP()

使用VLOOKUP()获取多个结果在这里解释:

http://office.microsoft.com/en-us/excel-help/how-to-look-up-a-value-in-a-list-and-return-multiple-corresponding-values-HA001226038.aspx

我每次和瓦西姆一起去,例如:

SO18655770的例子