2015-07-21 31 views
1

我正在寻找解决excel问题的方法。我建议在这里的VBA论坛上发布这个问题,虽然我认为这可能在Excel中可能,但如果没有Excel(如html或javascript等)可以更轻松地完成,我也会接受其他想法。在表格上匹配多个单元格的值

这是我的示例图像的Excel表。有左值的三元组,如果这些三元组是上表中的任何ROW共存在时,应该给的1的正输出时,如果不为0

enter image description here

***输出应1只有当所有三个值一起出现在一行上时。这些值可能不在相邻的单元格中。

对excel论坛,这些都是建议的公式:

=IF(IF(COUNTIF($F$2:$I$6,"="&A2) >0,1,0) + IF(COUNTIF($F$2:$I$6,"="&B2) >0,1,0) + IF(COUNTIF($F$2:$I$6,"="&C2) >0,1,0) = 3,1,0) 
=MIN(1,COUNTIF($F$2:$I$6,A2),COUNTIF($F$2:$I$6,B2),COUNTIF($F$2:$I$6,C2)) 

正是因为他们追求不回答我的问题,对整个表的值相匹配。

注:我不知道VBA。

+0

值是否必须按顺序出现(例如13之前12之前的1)? –

+0

@JohnColeman不,他们可以以任何顺序。 – Max

回答

1

使用以下Worksheet

enter image description here

添加一个VBA模块,并粘贴在...

Function MatchingOnRow(rngFind As Range, rngIn As Range) As Integer 
Dim bFound As Boolean 
For i = rngIn.Row To rngIn.Row + rngIn.Rows.Count 
    For Each rngCheck In rngFind 
     bFound = False 
     For j = rngIn.Column To rngIn.Column + rngIn.Columns.Count 
      If Cells(i, j).Value = rngCheck.Value Then 
       bFound = True 
       Exit For 
      End If 
     Next j 
     If bFound = False Then Exit For 
    Next rngCheck 
    If bFound = True Then 
     MatchingOnRow = 1 
     Exit Function 
    End If 
Next i 
MatchingOnRow = 0 
End Function 

下列函数,然后在列D(行2)添加公式因此

=MatchingOnRow(A2:C2,$F$2:$I$6) 

请享用!

+0

再次感谢!!!! – Max

相关问题