2个回答
展开全部
只是充值的最后一条?
用公式就能弄出来
C2
=IF(SUMPRODUCT((A$2:A$1000=A2)*(B$2:B$1000="充值"))=SUMPRODUCT((A$2:A2=A2)*(B$2:B2="充值")),1,"")
下拉
PS:原来的公式漏了一个逗号。。。。
用公式就能弄出来
C2
=IF(SUMPRODUCT((A$2:A$1000=A2)*(B$2:B$1000="充值"))=SUMPRODUCT((A$2:A2=A2)*(B$2:B2="充值")),1,"")
下拉
PS:原来的公式漏了一个逗号。。。。
更多追问追答
追问
1万多条,表卡死了,我不用公式
追答
Sub test()
Set dic = CreateObject("scripting.dictionary")
myrow = Range("A65536").End(xlUp).Row
arr = Range("A2:B" & myrow)
n = UBound(arr)
ReDim brr(1 To n)
For i = n To 1 Step -1
If Not dic.exists(arr(i, 1)) And arr(i, 2) = "充值" Then
dic(arr(i, 1)) = ""
brr(i) = 1
End If
Next
Range("C2:C" & myrow).ClearContents
Range("C2:C" & myrow) = Application.Transpose(brr)
End Sub
展开全部
可以使用for循环,从下往上遍历,找到的第一个动作对应的,就应该是符合条件的
Set d = CreateObject("scripting.dictionary")
for j=cells(rows.count,2).end(3).row to 2 step -1
if not d.exists(cells(j,2).value) then
d(cells(j,2).value)=j
endif
next j
最后字典里的值就是第二列从下数第一次出现的名称及对应的行号
Set d = CreateObject("scripting.dictionary")
for j=cells(rows.count,2).end(3).row to 2 step -1
if not d.exists(cells(j,2).value) then
d(cells(j,2).value)=j
endif
next j
最后字典里的值就是第二列从下数第一次出现的名称及对应的行号
追问
测试无效
追答
以上代码只是给了一个方式,具体字典里的值在哪里赋值,还有需要楼主根据需求来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询