跪求 各位大侠:EXCEL中如果在一列数据向上查找最近一个相同值,然后返回两数值间隔的行数?用什么函数

2024-11-30 02:38:06
推荐回答(4个)
回答1:

假设那些原始数据在A1:A100中,B1中反正不会有相隔的内容,从B2开始吧,B2中输入
=IF(COUNTIF(A$1:A2,A2)<2,"",ROW()-LOOKUP(1,0/(A$1:A1=A2),ROW($1:1)))
用自动填充柄下拉。

回答2:

假定,你把这些数据输入到了A列1-N行
则:
在B1格输入, =COUNTIF(A$1:A1,A1) 下拉填充至第N行
在C1格输入, =ROW() 下拉填充至第N行
在D2格输入, =IF(B2>1,C2-SUMIFS(C$1:C1,A$1:A1,A2,B$1:B1,B2-1),-1) ,下拉填充至第N行

在D列中,-1表示前面没有相同数据,非-1表示的就是举例最近的相同数值的行距

回答3:

给你一个VBA

Sub test()
Dim i%, k%
Range("b:b").ClearContents
For i = Range("a65536").End(xlUp).Row To 2 Step -1
If IsError(Application.Match(Cells(i, 1), Range(Cells(1, 1), Cells(i - 1, 1)), 0)) = False Then
Cells(i, 2) = i - Application.Match(Cells(i, 1), Range(Cells(1, 1), Cells(i - 1, 1)), 0) - 1
Else
Cells(i, 2) = "无相同值"
End If
Next
End Sub

回答4:

这个问题用VBA更好解决