在单元格中搜索逗号分隔的数字
Posted
技术标签:
【中文标题】在单元格中搜索逗号分隔的数字【英文标题】:Searching comma-separated numbers within a cell 【发布时间】:2014-09-09 04:46:33 【问题描述】:我有一列有很多逗号分隔的数字,例如:
100633,101
123,12
100633,1000
如何搜索特定单元格是否包含数字100633
?
【问题讨论】:
检查***.com/questions/18617175/… @VDohnal:我一开始也是这么想的,但是简单的字符串搜索并不总是有效:它会错误地返回TRUE
,例如1,2,3,999100633999
。必须查看整个逗号分隔值。
总是只有两个数字吗?或者它有时是一个更长的列表? 100633
总是在列表中排在第一位吗?
@Jean-FrançoisCorbett 你说得对,但我不敢相信如果不使用 VBA 就无法完成如此简单的任务。
【参考方案1】:
针对@Jean-François Corbett 的正确评论并基于以下答案
Check whether a cell contains a substring
这是一个公式,它在单元格 A1
中搜索文本 100633
,仅考虑逗号分隔值
=ISNUMBER(SEARCH(",100633,",","&A1&","))
它可以正确处理像1,2,3,999100633999
这样的文本
您也可以使用FIND
代替SEARCH
函数。 FIND
区分大小写。对于SEARCH
,您可以使用通配符。
【讨论】:
只有当逗号分隔列表中的“100633”不是第一个时,这个答案才有效? IE,搜索的是一个以逗号开头并以逗号结尾的数字。如果是列表中的第一个数字,它不会以逗号开头,所以找不到? @TomAuger 不,因为它在","&A1&","
内搜索,而不仅仅是在 A1 内搜索。【参考方案2】:
假设第一个目标单元格在 A1 中,返回 TRUE 或 FALSE:
=ISNUMBER(SEARCH(100633,A1))
判断真假时返回的自定义值:
=IF(ISNUMBER(SEARCH(100633,A1)),'yes','no)
【讨论】:
假阳性例如1,2,3,999100633999
.【参考方案3】:
=IF(FIND("100633",E11)=1,"Number Exists","Not Exists")
公式搜索文本并返回它是否存在于单元格中
更新: 尝试使用以下 excel 公式:
=MID(E18,FIND("100633",E18),6)
【讨论】:
假阳性例如1,2,3,999100633999
.
我已经尝试使用以下公式:=MID(E18,FIND("100633",E18),6) 希望它能正常工作
嗯,那个公式还说我刚刚给出的那个例子中存在数字100633
。但显然不是。 999100633999
和 100633
是两个截然不同的数字。【参考方案4】:
VBA 解决方案:
Function CommaSeparatedListContains(ByVal csv As String, ByVal v As String, _
Optional ByVal delimiter As String = ",") As Boolean
Dim i As Long
Dim splitCsv() As String
splitCsv = Split(csv, delimiter)
CommaSeparatedListContains = False
For i = LBound(splitCsv) To UBound(splitCsv)
If splitCsv(i) = v Then
CommaSeparatedListContains = True
Exit Function
End If
Next i
End Function
示例用法:
=CommaSeparatedListContains(A1,100633)
【讨论】:
【参考方案5】:使用以下方法...
private boolean isNumberInvolved(String column, String number_to_check)
String[] numberArray = column.split(",");
for(int i=0; i<numberArray.length; i++)
if(numberArray[i].equals(number_to_check))
return true;
return false;
【讨论】:
谢谢大家..当时我需要快速解决方案,所以使用了一种非常原始的方法...现在,我正在应用这些方法。除了我检查的那个(作为答案)之外,还有很多正确的答案。 Bt 我无法全选。所以选择了我正在应用其公式的那个。再次非常感谢。以上是关于在单元格中搜索逗号分隔的数字的主要内容,如果未能解决你的问题,请参考以下文章
Excel UDF - 对单元格内用逗号分隔的数字和文本进行排序