如何在Excel或VBA中搜索带有多个“-”的项目?

时间:2019-09-09 16:42:06

标签: excel vba

我有一个这样的商品编号(100K)列表:

enter image description here

某些项目的格式如 SAG571A-244-4 (千),需要对其进行过滤,因此我可以删除它们,而仅保留具有 ONE 的项目每个SKU的连字符。如何隔离SKU中具有两个“-” 实例的项目?我愿意接受Excel或使用VBA的解决方案。

本机文本过滤器似乎不具备此功能。我很困惑。

2 个答案:

答案 0 :(得分:3)

根据John Coleman的评论,"*-*-*"可用于隔离其中至少包含两个破折号的字符串。

我要补充一点,如果您将其作为自定义文本过滤器输入,则应删除双引号(因此只需*-*-*),否则该字段似乎会逐字解释引号。

似乎为我工作。

Output

答案 1 :(得分:0)

如果您只想要一个excel公式来验证这一点并为您提供连字符数(0、1,或2+)的结果,则为:

=IF(ISERROR(SEARCH("-",A1)),"0",IF(ISERROR(SEARCH("-",A1,IFERROR(SEARCH("-",A1)+1,LEN(A1)))),"1","2+"))

用相关列替换A1,然后填写。这是实现此性能明智的一种糟糕方法,但是您避免使用VBA和可能的xlsm文件。

代码首先检查是否有一个连字符,然后检查是否找到另一个连字符。以这种方式查找多个连字符很麻烦,我不建议这样做。