我正在寻求解决excel问题的方法。我建议在这里的VBA论坛上发布这个问题,虽然我认为这可以在excel上实现,如果没有excel(例如html或javascript等)可以更容易地完成,我也会接受其他想法。
这是我的excel表的示例图像。左边有三个值,如果这些三元组在表的任何行上完全存在,它应该给出1的正输出,如果不是0.
***仅当一行中所有三个值都存在时,输出才应为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 :(得分:1)
使用以下Worksheet
添加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)
享受!