2015-07-21 52 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

相關問題