正如标题所示,我正在尝试创建一个系统,其中一个单元格(与特定行匹配)将搜索另一个工作表,找到与其行号匹配的数字,然后输入配对值。我附上了截图,以获得更清晰的图片。
这是我迄今为止所尝试过的,没有任何成功。
IF(INDEX(A2:B8,2,2)=?,____,"")
我独立理解INDEX和MATCH函数,但没有具体理解如何将这两个函数合并到这个问题中。此外,我已经尝试搜索谷歌寻求帮助,但是甚至不知道输入什么作为搜索条件,所以对此的帮助对于未来的问题也会很好。
提前致谢!
答案 0 :(得分:1)
在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
将公式拖放到同一行并向下。
Sheet1!$ A $ 2:$ A $ 8,Sheet1!$ B $ 2:$ B $ 8是行和值栏
If()将测试A2中的每个值:A8中新表中的Row()并返回sheet1中的行号
99999如果没有Row()匹配则具有最大值(If的假部分)
列(A1)返回小(,1)
当您拖动同一行时(对于相同行号的多个值),它将成为列(B1)
如果没有数字
Sheet 1中
A B
Row Value
5 20
2 30
7 40
8 50
2 60
3 70
2 100
Sheet2结果
Row/Col A B C
1
2 30 60 100
3 70
4
5 20
6
7 40
8 50
答案 1 :(得分:0)
使用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