如何使用匹配函数获取数据的值?

问题描述如下:A是可用的全部testing; B,C是对对象及其结果所做的testing; D,E是输出

可用的全部testing在列A中。列B表示在对象上进行的testing,因此如果对象改变而列C给出testing的结果则它们会变化。 D再次表示总testing的输出,E分别给出特定testing的结果。 我想使用VBA给C到E的结果,剩下的单元格是空的。 请帮我怎么样?

ABCDE qq qq 23 qq 23 ww dde 34 ww ee gg 45 ee dd dd ff ff gg gg 45 vv vv dde dde 34 ass ass bb bb nn nn xx xx 

这个公式应该这样做:

 =IFERROR(INDEX($C:$C,MATCH(D1,$B:$B,0)),"") 

把它放在E1中,并抄下来。 不需要VBA。

对于美国以外的地区,可能需要replace; 喜欢这个:

 =IFERROR(INDEX($C:$C;MATCH(D1;$B:$B;0));"") 

如果VBA是所需的方式然后:

 Sub subha() Dim rng As Range With ActiveSheet For Each rng In .Range(.Range("D1"), .Range("D" & .Rows.Count).End(xlUp)) rng.Offset(, 1) = WorksheetFunction.IfError(Application.Index(.Range("C:C"), Application.Match(rng, .Range("B:B"), 0)), vbNullString) Next rng End With End Sub