我有2张。 Sheet1有3列A,B和B列。 C的值为range_start_number(A),range_end_number(B)和range_name(C)。
Sheet2有1列A和数字列表。
如何找到sheet2中的哪些数字属于sheet1中的哪个范围?此外,数字在相应范围内的位置也是如此。输出应该是: '范围名称' - '范围内的位置'
请参阅下面的示例数据输入(sheet1& sheet2)和预期输出(在sheet2中)。
Sheet1 (input)
A B C
10 17 rangeA
17 15 rangeB
30 12 rangeC
8 9 rangeD
11 9 rangeE
36 50 rangeF
40 45 rangeG
31 32 rangeH
5 25 rangeI
25 26 rangeJ
Sheet2 (input)
A
10
11
12
13
14
15
16
17
18
19
22
23
24
25
Sheet2 (output)
A B C D E
10 rangeA-1 rangeI-6 rangeE-2
11 rangeA-2 rangeI-7 rangeE-1
12 rangeA-3 rangeC-19 rangeI-8
13 rangeA-4 rangeC-18 rangeI-9
14 rangeA-5 rangeC-17 rangeI-10
15 rangeA-6 rangeB-3 rangeC-16 rangeI-11
16 rangeA-7 rangeB-2 rangeC-15 rangeI-12
17 rangeA-8 rangeB-1 rangeC-14 rangeI-13
18 rangeC-13 rangeI-14
19 rangeC-12 rangeI-15
22 rangeC-9 rangeI-18
23 rangeC-8 rangeI-19
24 rangeC-7 rangeI-20
25 rangeC-6 rangeI-21 rangeJ-1
答案 0 :(得分:0)
计算范围内的数字位置从输入值中减去范围数字中较小的数字
Sub RangeSub()
Row = 1
Do While True
Column = 6
If Not IsEmpty(Cells(Row, 5)) Then
rRow = 1
Do While True
If Not IsEmpty(Cells(rRow, 1)) And Not IsEmpty(Cells(rRow, 2)) And Not IsEmpty(Cells(rRow, 3)) Then
If (Cells(rRow, 1).Value <= Cells(Row, 5).Value And Cells(Row, 5).Value <= Cells(rRow, 2).Value) Or (Cells(rRow, 1).Value >= Cells(Row, 5).Value And Cells(Row, 5).Value >= Cells(rRow, 2).Value) Then
Position = Abs(Cells(Row, 5) - Cells(rRow, 1)) + 1
Cells(Row, Column).Value = Cells(rRow, 3).Value + "-" + Str(Position)
Column = Column + 1
End If
Else
Exit Do
End If
rRow = rRow + 1
Loop
Row = Row + 1
Else
Exit Do
End If
Loop
End Sub
代码使用同一工作表中的范围和输入,您可以将其更改为在不同工作表中工作。
A B C D E
10 17 rangeA 10
17 15 rangeB 11
30 12 rangeC 12
8 9 rangeD 13
11 9 rangeE 14
36 50 rangeF 15
40 45 rangeG 16
31 32 rangeH 17
5 25 rangeI 18
25 26 rangeJ 19
22
23
24
25
D为空白。