表格里如何判断一个单元格是否包含另一个单元的数值

如图:判断B1中数值5678是否包含A1中的数值45,只要包含有一个就在C1
1、如图:判断B1中数值5678是否包含A1中的数值45,只要包含有任意一个(个位或十位),就在C1中显示包含,
比如:B1:5678 包含有A1:45中的数值5,C1就显示包含,反之B2:4569不包含有A2的任何数值,C2则显示不包含
只B1中的数值包含有A1中任意数就显示包含,反之则显示不包含
2、C1中值为包含时在D列显示68, 反之则在E列显示128

第1个回答  2017-12-26
用公式填充 C 列
=IF(ISERR(FIND(A1,B1)),"不包含","包含")追问

刚刚问题还没有写完点错了就发布了,现在补充问题敢了,可以帮帮我再看看么

追答

没有现成的函数实现这个功能。不过可以通过自定义函数实现。

按ALT+F11打开VBA,右键点窗口左侧导航project,选择 插入-模块,将下面代码复制到代码窗口中。

Function iscontain(r1 As Range, r2 As Range)
    Dim s1, s2 As String
    s1 = r1.Cells(1, 1).Value
    s2 = r2.Cells(1, 1).Value
    For i = 1 To Len(s1)
        c = Mid(s1, i, 1)
        For j = 1 To Len(s2)
            If c = Mid(s2, j, 1) Then
                iscontain = True
                Exit Function
            End If
        Next j
    Next i
    iscontain = False
End Function

返回 EXCEL,在C列输入公式 

=if( iscontain(A1,B1),"包含","不包含")

在D列输入公式

=if( iscontain(A1,B1),"68","")

在E列输入公式

=if( iscontain(A1,B1),"","128")

公式填充

追问

如果A1 B1 都为空,如何让 C1 D1 E1也为空呢?意思就是 A1 B1没有数据时 后面的C1 D1 E1也没有任何数据,为空为0

追答Function iscontain(r1 As Range, r2 As Range)
    Dim s1, s2 As String
    s1 = r1.Cells(1, 1).Value
    s2 = r2.Cells(1, 1).Value
    if s2="" or s1="" then
        iscontain=""
        exit function
    end if
    For i = 1 To Len(s1)
        c = Mid(s1, i, 1)
        For j = 1 To Len(s2)
            If c = Mid(s2, j, 1) Then
                iscontain = "包含"
                Exit Function
            End If
        Next j
    Next i
    iscontain = "不包含"
End Function

在C列输入公式 

=iscontain(A1,B1)

在D列输入公式

=if( ISBLANK(C1),"","68")

在E列输入公式

=if( ISBLANK(C1),"","128")

公式填充

追问

C列为空时    D  E列应该也为空

要不这样改,当C1值为包含时D1显示68,反之C1值为不包含时D1显示-128(负128)

追答

D1公式
=IF(C1="包含",68,"")
E1公式
=IF(C1="不包含",128,"")

本回答被提问者采纳
第2个回答  2017-12-26
C1公式:
=IF(OR(ISNUMBER(FIND(LEFT(A1),B1)),ISNUMBER(FIND(RIGHT(A1),B1))),"包含","不包含")
下拉。追问

刚刚问题还没有写完点错了就发布了,现在补充问题敢了,可以帮帮我再看看么

追答

补充回答:
D1公式:
=IF(C1="包含",68,"")
下拉;
E1公式:
=IF(C1="不包含",128,"")
下拉。

本回答被网友采纳
相似回答