[英]Excel - identify cells with multiple instances of the same values
需要找到B列中包含3个或更多21个特定值的单元格。
以下是具体值(每个4个字母的字符串是单个值)。-3544 3538 3506 3502 3398 3396 3394 3392 3390 3388 3386 3386 3384 3376 3362 3288 3270 3230 3228 1944 1866 1384
*要澄清更多-有21个值(在可能的更大值组中),需要标识包含3个或更多这些值的单元格。
*编辑2-在这些单个单元格(都在B列中)中,有任意多个值,并用逗号分隔。 21个可能的值是指对于3个或更多相同事件,需要在较大的一组值中查看的特定值。 换句话说,在这些单个单元格中,将存在并非上述21个可能值中的任何一个的数字。
C列中需要输入“是”或“否”。
编辑:这是自您更改要求以来的新版本
您可以使用以下模块功能:
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/
让我们想象所有那些特殊的单元格都在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 FIND 。 原始公式为:
=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中,它工作得很好:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.