Excel - 识别具有相同值的多个实例的单元格

时间:2018-02-01 00:15:29

标签: excel formula criteria

需要查找B列中包含3个或更多21个特定值的单元格。

以下是具体值(每个4个字母的字符串是单个值。) - 3544 3538 3506 3502 3398 3396 3394 3392 3390 3388 3386 3384 3376 3362 3288 3270 3230 3228 1944年 1866年 1384

*澄清更多 - 有21个值(在更大的可能值组中)并且需要识别包含3个或更多这些值的单元格。

*编辑2 - 在这些单个单元格中(全部在B列中),可以用逗号分隔任意数量的值。 21个可能的值是指需要在较大的值集合中查看3个或更多相同事件的特定值。换句话说,在这些单个单元格中,将有数字不是上述21个可能值中的任何一个。

enter image description here

"是"或"否"需要进入C列。

3 个答案:

答案 0 :(得分:0)

编辑:以下是您更改要求后的新版本

您可以使用以下模块功能:

Public Function SplitFind(str As String, values As Range, minoccurs As Integer) As Boolean
    Let parts = Split(str, ",")
    Dim f1, f2, f3 As Boolean
    Dim occurs As Integer
    occurs = 0
    For Each cel In values.Cells
        Let sval = Val(cel.Value)
        Dim found As Boolean
        found = False
        For Each s In parts
            Let n = Val(s)
            If n = sval Then
                found = True
            End If
        Next s
        If found Then
            occurs = occurs + 1
        End If
    Next cel
    SplitFind = occurs >= minoccurs
End Function

现在假设您在单元格A1 - U1中有21个值。并且具有逗号分隔值的第一个单元格在A2中。 然后,您可以使用以下公式来检查A1-U1中的3个或更多值是否出现在A2中:

=SplitFind(A2;$A$1:$U$1;3)

以下是有关如何添加自定义功能的指南:http://www.dummies.com/software/microsoft-office/excel/how-to-create-custom-excel-functions/

答案 1 :(得分:0)

让我们假设所有这些特殊单元格都在A列中。对于我的答案,让我们想象你的行1值2212,2280,7809,8990,9113,3876在单元格A1中。我会用:

=IF(AND(IFERROR(FIND("8990";A1;1);0)>0;IFERROR(FIND("2212";A1;1);0)>0;IFERROR(FIND("7809";A1;1);0)>0);"YES";"NO")

我有Excel的西班牙语版本,所以我手动翻译了公式,但基本上,1 IF 结合1 AND ,3 IFERROR 和3 查找。原始公式是:

=SI(Y(SI.ERROR(ENCONTRAR("8990";A2;1);0)>0;SI.ERROR(ENCONTRAR("2212";A2;1);0)>0;SI.ERROR(ENCONTRAR("7809";A2;1);0)>0);"YES";"NO")

如果我录制宏,VBA会这样做(也许可以帮你输入):

ActiveCell.FormulaR1C1 = _
        "=IF(AND(IFERROR(FIND(""8990"",RC[-2],1),0)>0,IFERROR(FIND(""2212"",RC[-2],1),0)>0,IFERROR(FIND(""7809"",RC[-2],1),0)>0),""YES"",""NO"")"

希望这会有所帮助。在我的Excel中它完美地运作:

enter image description here

答案 2 :(得分:0)

您可以使用数组公式。

使用您在D1:D3中查找的值以及A1中的数据,您可以使用以下内容:

编辑 添加了前面的逗号以使公式更加健壮

=COUNT(FIND(","&$D$1:$D$3&",",","&A1&","))>=3

应按住 ctrl + shift 输入公式,同时按输入。如果您正确执行此操作,Excel将在公式栏中的公式周围放置大括号{...}。然后根据需要填写公式

编辑2 如果要测试的单元格中可能有空格,请尝试使用此公式删除这些空格

=COUNT(FIND(","&$D$1:$D$3&",",","&SUBSTITUTE(A1," ","")&","))>=3

enter image description here