将行号和值匹配到另一个工作表上的一行

如标题所示,我试图创build一个系统,其中一个单元格(与特定行相匹配)将search另一个工作表,find与其行号匹配的数字,然后放入配对值。 我附上了截图,以获得更清晰的图像。

这是我迄今为止没有成功的尝试。

IF(INDEX(A2:B8,2,2)=?,____,"")

我有点独立地理解INDEX和MATCH函数,但没有具体的了解如何将这两个问题结合起来。 另外,我已经试图在谷歌上寻求帮助,但是甚至很难知道要input什么search词,所以对此的帮助对于将来的问题也是很好的。

在这里输入图像说明

提前致谢!

使用VBA你可以做到这一点。 只需将此代码粘贴到一个新的模块并运行即可。

 Sub PasteToNewSheet() Dim wsSource As Worksheet: Set wsSource = Worksheets(1) Dim lastrow As Long: lastrow = wsSource.Cells(Rows.Count, 1).End(xlUp).Row Dim wsDest As Worksheet: Set wsDest = Worksheets.Add(After:=wsSource) Dim rngRows As Range: Set rngRows = wsSource.Range("A2:A" & lastrow) Dim rng As Range wsDest.Range("A1").Value = "Value" For Each rng In rngRows If rng = "" then rng = rng ElseIf wsDest.Cells(rng.Value, 1) = "" Then wsDest.Cells(rng.Value, 1) = rng.Offset(, 1).Value ElseIf wsDest.Cells(rng.Value, 2) = "" Then wsDest.Cells(rng.Value, 2) = rng.Offset(, 1).Value ElseIf wsDest.Cells(rng.Value, 3) = "" Then wsDest.Cells(rng.Value, 3) = rng.Offset(, 1).Value End If Next rng End Sub 

在A2中使用以下内容:

 =IFERROR(INDEX(Sheet1!$B$2:$B$8,SMALL(IF(Sheet1!$A$2:$B$8=ROW(),ROW(Sheet1!$A$2:$A$8),999999),COLUMN(A1))-1),"") 

数组公式按Ctrl + Shift + Enter同时代替Enter
将公式拖放到同一行中。

Sheet1!$ A $ 2:$ A $ 8,Sheet1!$ B $ 2:$ B $ 8是Row and Value列
如果()将testing新工作表中的行()的A2:A8中的每个值,并返回工作表1中的行号
99999有一个最大值如果没有Row()匹配(假的If部分)
列(A1)返回小(,1)
在同一行中拖动时,它将变成列(B1)(对于同一行号的多个值)
如果没有数字,Iferror将返回“”空

工作表Sheet1

  AB Row Value 5 20 2 30 7 40 8 50 2 60 3 70 2 100 

Sheet2结果

 Row/Col ABC 1 2 30 60 100 3 70 4 5 20 6 7 40 8 50