![](/img/trans.png)
[英]How to get multiple values with a single look up in Excel with transposing the data from column to rows
[英]How to do a partial look up in excel and get the data in next column till four rows in VBA
工作表3与工作表2相同,但其中包含完整的主要任务,而不仅仅是摘要。 我建议采用以下方法。
在工作表1中创建一列,其中仅编写摘录。 此列的内容将与工作表2的A列相同。使用此公式填充该列(其中A2包含完整的主要任务)。
TRIM =(LEFT(MID($ A2,FIND( “ - ”,$ A2)1100),FIND( “ - ”,MID($ A2,FIND( “ - ”,$ A2)1100)) - 1) )
复制工作表2作为工作表3,并在其中添加空白列B。 用此公式填充此列(其中A:A是包含完整任务的列,C:C是您在步骤1中添加的列。
= INDEX('Sheet 1'!A:A,MATCH(A2,'Sheet 1'!C:C,0))
用值(“复制/粘贴”值)替换工作表3中的公式,然后从该工作表中删除列A。 将此工作表按现在的A列排序。
删除您在工作表1中添加的列,以将工作表1恢复到其原始状态。
如果您愿意接受VBA解决方案,则可以尝试这样的操作。 下面的代码假定工作簿中有三个工作表,分别为“ Sheet1”,“ Sheet2”和“ Sheet3”。
如果原始工作簿中的工作表名称不同,请在测试代码之前在以下行的代码中进行更改。
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
Set ws3 = Sheets("Sheet3")
将以下代码放在标准模块上,然后运行代码以在Sheet3上获得所需的输出。
Sub LookupData()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Dim rng As Range, cell As Range, MainTask As Range
Dim lr2 As Long, lr3 As Long
Dim MainTaskStr As String, wht As String
Application.ScreenUpdating = False
Set ws1 = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
Set ws3 = Sheets("Sheet3")
lr2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row
Set rng = ws2.Range("A2:A" & lr2)
ws3.Cells.Clear
ws3.Range("A1:B1").Value = Array("Main Task", "Sub-Task")
If ws2.FilterMode Then ws2.ShowAllData
For Each cell In rng
If cell.Value <> MainTaskStr Then
MainTaskStr = cell.Value
lr3 = ws3.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
wht = "- " & cell.Value & " -"
Set MainTask = ws1.Range("A:A").Find(what:=wht, LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)
If Not MainTask Is Nothing Then
With ws2.Rows(1)
.AutoFilter field:=1, Criteria1:=MainTaskStr
ws3.Range("A" & lr3) = MainTask.Value
ws2.Range("B2:B" & lr2).SpecialCells(xlCellTypeVisible).Copy ws3.Range("B" & lr3)
End With
End If
End If
Next cell
If ws2.FilterMode Then ws2.AutoFilterMode = False
ws3.UsedRange.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.