Code:
sub M_snb()
  sn=sheets(1).cells(1).currentregion
  with createobject("scripting.dictionary")
    for j=2 to ubound(sn)
      .item(sn(j,1))=sn(j,2)
    next

    for j=2 to ubound(sn)
      if .exists(sn(j,3)) then
        sp=split(.item(sn(j,3)))
        for jj=0 to ubound(sp)
           if instr(sn(j,4),sp(j,4))=0 then exit for
        next
        .item(sn(j,3))=iif(jj=ubound(sp)+1,"match","no match")
     end if
   next

   cells(2,5).resize(.count)=application.transpose(.keys)
   cells(2,6).resize(.count)=application.transpose(.items) 
  End with
End Sub