方法壹、用公式
C2=IF(B2<>"",IFERROR(VLOOKUP(B2,$B$1:C1,2,),MAX($C$1:C1)+1),IF(SUMPRODUCT(($B$1:B1="")*($A$1:A1=A2)),MAX(($B$1:B1="")*($A$1:A1=A2)*IF(ISNUMBER($C$1:C1),$C$1:C1,)),MAX($C$1:C1)+1))數組公式,Ctrl+Shift+Enter結束。下拉
方法二、VBA
先看效果
在本sheet中放入如下代碼:(註意:Name1中不能有與Name2同名,否則可能導致排序錯誤,從妳這應該不會有同名)
Sub?test()Dim?d,?arr,?rs,?i&,?k&,?m$,?n$,?x$
Set?d?=?CreateObject("scripting.dictionary")
arr?=?[A2].Resize([A65536].End(3).Row?-?1,?2)
rs?=?[C2].Resize([A65536].End(3).Row?-?1,?1)
k?=?1
For?i?=?1?To?UBound(arr)
m?=?arr(i,?1)
n?=?arr(i,?2)
x?=?IIf(n?<>?"",?n,?m)
If?Not?d.exists(x)?Then
d(x)?=?k
rs(i,?1)?=?k
k?=?k?+?1
Else
rs(i,?1)?=?d.Item(x)
End?If
Next
Set?d?=?Nothing
[C2].Resize([A65536].End(3).Row?-?1,?1)?=?rs
End?Sub